MySQLデータディレクトリ変更時の注意点
MySQLをLinuxにインストールすると、デフォルトのデータディレクトリは/var/lib/mysql
になるものと想定される。これを変更しようとして、ちょっとハマってしまったので記録を。
以下、データディレクトリ変更の大まかな手順。
1.変更先となるディレクトリの作成。オーナーをmysqlにchown。
2.MySQLインスタンスの停止
3.デフォルトのデータディレクトリを中身ごと変更先へ移動する。
※バックアップは取得しておく!
4.my.cnfを編集し、datadirの値を変更。
他にもデフォルトから変えたい値があれば一緒に編集するとして。
5.MySQLインスタンスを起動。
起動後にMySQLにログインして
mysql > show variables like ‘datadir’;
などやってデータディレクトリが変更されていることを確認できればOK。
が、起動できない。。以下、エラーメッセージ。
Manager of pid-file quit without updating file.
こんな時はエラーログを確認。
“innodb_log_arch_dir “というパラメータがNGだったようなので、コメントアウトして
再試行。が、次も起動せず。エラーログには以下が。
Faild to open log(file ‘ ./mysql-bin.000001′ , errono2)
Could not open log file.
Can’t init tc log.
バイナリログが開けないよ、と言ってるのでとりあえずmy.cnfのバイナリログ関係の
パラメータをすべてコメントアウトしたところ、起動した。
でもバイナリログは必要なんだから、これじゃいかんのだw
それに、InnoDBログがパラメータで指定した場所に出来てない。うーむ。。
ググッた結果を参考に、バイナリログについては既存のファイルとインデックスを削除。
InnoDBログも削除。
my.cnfでバイナリログ関係パラメータのコメントを外し、再試行。
(正確な状況ではないですよ、もちろん。この間「MySQL の上げ下げ、my.cnf編集、
エラーログ確認、Google検索、その他」を何度も繰り返してたので、、、)
起動及びデータディレクトリ変更成功。InnoDBログも指定の場所に出来ている。
不要なファイルは削除しておくべき、ってことみたいだな。しかし疲れた・・・
追記
“Manager of pid-file quit without updating file.”エラーの対処について。
ここに書いたのはあくまで一例であって、他にも様々な原因により発生すると思われる。
繰り返しになるが、まずはエラーログ確認、ですね。