質問: MySQL 5.6, CentoOS6.4を使用しているのですが、MySQLのデータディレクトリの移動が出来ません。 やったこと * mysqlサーバーを停止してから、デフォルトのデータフォルダから移動先のデータフォルダへファイル・ディレクトリを全てコピーし、chownで新ディレクトリの所有者をmysql:mysqlに変更 * /etc/my.cnfを作成し、[client], [mysqld]のdatadir, pid-file, socketを移動先のフォルダにあわせて設定 症状 * mysqlサーバーを起動するためにservice mysql startをコマンドラインで入力すると、下記のメッセージが表示される Starting MySQL.The server quit without updating PID file (/new_datadir/***.localhost.pid). * /new_datadir/***.localhost.errの内容は下記の通り 151012 16:40:34 mysqld_safe Starting mysqld daemon with databases from /new_datadir 151012 16:40:34 mysqld_safe mysqld from pid file /new_datadir/***.localhost.pid ended * /etc/my.cnfを消去すると、mysqlサーバーはデフォルトのデータフォルダで問題なく起動する。 様々なサイトを調べたのですが、どうしても自力で解決できません。 また、getenforceの返り値はPermissiveだったので、SELinux関係のトラブルではないと思います よろしくお願いします。 追記 このサイトにしたがって移動先のディレクトリとファイルのタイプを'unconfined_u:object_r:mysqld_db_t:s0'に変更しましたが、改善できませんでした。
回答: コメントだと解決法が埋もれてしまうというご指摘があったので、回答として解決法を投稿します。 移動先のデータディレクトリが複数のパス、例えば/new/data/dir、で構成されてる場合には、「/」「/new」「/new/data」「/new/data/dir」の全てにr権限が必要のようです。 下記のように各ディレクトリにパーミッションを与えることで解決できます。 ``` chmod +r / /new /new/data /new/data/dir ``` 権限が変更されたことはls -ldで確認できます。 ``` ls -ld / /new /new/data /new/data/dir dr-xr-xr-x. 28 root root 4096 Sep 24 11:43 / drwxr-xr-x. 4 root root 4096 Oct 14 22:23 /new drwxr-xr-x. 27 User1 User1 4096 Oct 12 16:14 /new/data drwxr-xr-x. 5 mysql mysql 4096 Oct 15 10:42 /new/data/dir/ ``` これで起動できるようになりました。