MySQL - データディレクトリの移動!
Updated:
通常、MySQL を一旦インストールしたらデータディレクトリはそう変更しないと思います。
Linux の場合、インストール時に指定しなければ “/var” ディレクトリ配下にデータディレクトリが作成されます。
Webサイトやブログ等の運用で使用するくらいなら、デフォルトのデータディレクトリで全く(殆ど)問題ありません。 しかし、データを大量に使用するようなDBアプリを作ったりすると、”/var” ディレクトリが圧迫されてしまいます。(数十GBなどすぐにいっぱいになります)
そんな時の為に、MySQLのデータディレクトリを移行する手順を記録しておきます。
作業記録
0. 前提条件
作業した OS は Scientific Linux 6.2 (amd64) 、MySQL のバージョンは 5.5.23 です。 Redhat 系 Linux や 別のバージョンの MySQL でも同様です。 MySQL のデータディレクトリを丸ごと “/var/mysql/data” → “/home/mysql” に変更する場合の手順です。適宜ご自分の環境に合わせて読み替えて下さい。 (MySQL 5.1 系なら “/var/lib/mysql” がデフォルトのデータディレクトリでしょう) Windows の場合も同様だと思います。
1. MySQL サーバの停止
作業するには一旦 MySQL サーバを停止します。
# /etc/rc.d/init.d/mysqld stop
2. データディレクトリのコピー
元のデータディレクトリを移動先にコピーします。 この際、所有者・グループ・パーミッションもそのまま維持してコピーするとよいです。(後でパニックにならない為にも)
# cp -rp /var/mysql/data /home/mysql
(当然ながら、移動先ディレクトリがない場合は予め作成しておく)
3. MySQL 設定ファイル編集
データディレクトリ指定部分を修正します。
# vi /etc/my.cnf
[mysqld]
datadir=/var/mysql/data
↓ 変更
datadir=/home/mysql
4. MySQL サーバの起動
# /etc/rc.d/init.d/mysqld start
5. 動作確認と後始末
MySQL サーバにログインして異常が無い事を確認する。 この時点でまだ残っている移動元のディレクトリが完全に切り離れているかを確認する為、当方は、移動元ディレクトリの名前を変更して MySQL サーバの再起動・動作確認もしてみました。 それでも異常が無い事が確認できた上で移動元のディレクトリを丸ごと削除しました。 ※数十GBにも及ぶデータなので特に慎重に作業しました。
これで、安全にデータディレクトリが変更できました。
以上です。
Comments