データの保存場所を変更する その2 (MySQL4.x)
MySQL4.0(Linux)でデータベースやログの保存場所を変更したい。
ただし「その1」で行ったように設定ファイルを直接いじるのは怖いのでしたくない。そこでシンボリックリンクを用いた手順を示す。
※注釈
前回同様にVineLinux3.2上にapt-getでインストールした物を変更するケースとなる。ほかのディストリビーションやソースからコンパイルした場合、バイナリ版では異なる可能性がある点に注意。
移行自体は今回も(データが巨大な物でなければ)30分もかからないだろう。やはり次のように大きく4つのステップで完了する。
※前回と異なるのは三番目のみ。
- MySQLサーバを停止(stop)する
- 移動先にデータをコピー
- シンボリックリンク作成
- MySQLサーバを起動(start)する
■1. MySQLサーバを停止(stop)する
root → mysql にユーザーを変更し、起動スクリプトから停止を行う。
Password:
[root]# su mysql
bash-2.05b$ /etc/init.d/mysql stop
■2. 移動先にデータをコピー
デフォルトでは「/var/lib/mysql」以下にデータベースや各種ログが入っているのでディレクトリ毎コピーすれば良い(-rオプションはディレクトリコピーを示す)。
mvで移動しても良いが、運用開始後に切り返す可能性を考え必ずコピーで。この時mysqlを起動するユーザーとデータの所有者が一致すること。ここでは前段階で所有者である「mysql」にユーザーを変更しているため特に何もしない。ミスった場合は焦らずchownしてやればよい。
■3. シンボリックリンク作成
現在使用しているディレクトリ名を変更し、シンボリックリンクを普通に作成すれば良い。削除しても良いがこちらも切り返すことを考え残しておくのが賢明だろう。
bash-2.05b$ ln -s /newdir/mysql /var/lib/mysql
■4. MySQLサーバを起動(start)する
以上で終了だ。
後はSELECT,INSERTやUPDATEなどを一通りテストし、ちゃんと新しい方に反映されているかを確かめれば良い。
シンボリックリンクを使用する方法は、前回と比べて設定ファイルを一切編集する必要がないため非常に安全で簡単である。特に問題がないのならこちらの方法をとることをオススメする。
