can't start mysql56 after move datadir
Murray Eisenberg
murrayeisenberg at gmail.com
Fri Feb 13 13:59:07 PST 2015
Thanks to repeated help from Ryan Schmidt and Brandon Allbery, I finally was able to get mysql56 to work with a non-default datadir location. Here's what I did:
0. Uninstalled the macports mysql56-server and
deleted both /opt/local/var/db/mysql56 and /Volumes/MacHD/Users/thisuser/Databases/mysql/data.
1. Verified that the existing /opt/local/etc/mysql56/my.cnf included the desired setting for datadir:
/Volumes/MacHD/Users/thisuser/Databases/mysql/data
2. Created directory /Volumes/MacHD/Users/thisuser/Databases/mysql/data and changed its owner to _mysql:
chown _mysql:_mysql /Volumes/MacHD/Users/thisuser/Databases/mysql/data
3. [First crucial step] Gave user _mysql search permission to those directories on the path to the datadir that did not already have +x permission for all:
chmod +a "_mysql allow search" /Volumes/MacHD/Users/thisuser/Databases
chmod +a "_mysql allow search" /Volumes/MacHD/Users/thisuser/Databases/mysql
4. Followed Steps 1 and 2 at https://trac.macports.org/wiki/howto/MySQL ... _EXCEPT_ near the end of Step 2...
5. [Second crucial step] Created a database but explicitly specifying the datadir; this is a modification of the end of Step 2 at https://trac.macports.org/wiki/howto/MySQL.
sudo -u _mysql mysql_install_db --datadir=/Volumes/MacHD/Users/thisuser/Databases/mysql/data
6. Continued with the rest of Step 2 at https://trac.macports.org/wiki/howto/MySQL to change ownership to _mysql for
/opt/local/var/db/mysql56/ , /opt/local/var/run/mysql56/ , and /opt/local/var/log/mysql56/
7. Continued with the remaining Steps 4-5 at https://trac.macports.org/wiki/howto/MySQL.
Perhaps such a drastic procedure is not required, and it would suffice to install mysql56-server as usual, but stopping short of creating a database; edit my.cnf to specify the non-default datadir; and carry out the two "crucial steps" above.
> On 12 Feb2015, at 5:05 PM, Murray Eisenberg <murrayeisenberg at gmail.com> wrote [corrected:
>
> After upgrading from OS X Mavericks to Yosemite, I did the standard procedure for migrating macports. But I found that the mysql server would not start. So I uninstalled mysql56 completely and installed anew. Worked just fine.
>
> But, I want my datadir to be someplace else from the default, so I edited my.cnf as shown below, then did an _exact_ copy (* preserving permissions *) of /opt/local/var/db/mysql56 to new location ~/Databases/mysql/data, i.e.,
> /Volumes/MacHD/Users/thisuser/Databases/mysql/data.
>
> When I execute
>
> sudo /opt/local/share/mysql56/support-files/mysql.server start
>
> now I get the dreaded message
>
> Starting MySQL
> . ERROR! The server quit without updating PID file (/Volumes/MacHD/Users/thisuser/Databases/mysql/data/MyMachineName.local.pid).
>
> ...
> What's wrong?
>
> Below is my /opt/local/etc/mysql56/my.cnf.
>
>
> ========== begin file my.cnf ===========
>
> # Use default MacPorts settings
> !include /opt/local/etc/mysql56/macports-default.cnf
>
> [mysqld]
> datadir = /Volumes/MacHD/Users/thisuser/Databases/mysql/data
> port = 3306
> socket = /opt/local/var/run/mysql56/mysqld.sock
>
> sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
>
> [client]
> socket = /opt/local/var/run/mysql56/mysqld.sock
>
> ============ end file =============
---
Murray Eisenberg murrayeisenberg at gmail.com
503 King Farm Blvd #101 Home (240)-246-7240
Rockville, MD 20850-6667 Mobile (413)-427-5334
More information about the macports-users
mailing list