Linux の使い方: MySQL のデータベース保存先を変更する (CentOS 5.4)


MySQL のデータベース保存先を変更する

CentOS 5.4 では MySQL というフリーのデータベースシステムを利用することができるようになっています。

このデータベースの保存場所は "/etc/my.cnf" 内の "datadir" で設定されているのですが、既定では、それは "/var/lib/mysql" に設定されています。これを運用後に変更する場合についての方法を試してみましたので、以下に記しておこうと思います。

なお、インストール方法については データベースシステム MySQL をインストールする (CentOS 5.4) に記しましたのでそちらを参考にしてください。

 

今回、"/etc/my.cnf" の "datadir" の値は "/var/lib/mysql" になっているとして、それを "/home/mysql" へ移動してみようと思います。

まずは MySQL を停止します。

service mysqld stop

その上で、"/var/lib/mysql" ディレクトリを "/home/mysql" ディレクトリにコピーします。

このとき "-p" オプションを使用して、パーミッション情報を全て複製するようにします。もし tar によってアーカイブされたデータを使用する場合には、こちらも "-p" オプションで、パーミッション情報を含めた展開を行うことができます。

cp -prf /var/lib/mysql /home

コピーができたら、"/etc/my.cnf" の "datadir" を書き換えます。

datadir=/home/mysql

ここまでできたら、MySQL を起動してみます。

service mysqld start

 

これで、問題なく MySQL が起動すれば、データベースの保存先の変更作業は完了です。

もしここで起動できないような場合には、データベースが格納されたディレクトリをコピーする際にオーナー情報やパーミッション情報が代わってしまったか、または SELinux というセキュリティ制御機構が邪魔をしている可能性が考えられます。

SELinux が邪魔をして起動できなくなった時のお話は MySQL の datadir を標準以外に変更すると起動できなくなる場合 (CentOS 5.4) の方にも記してみていますので、必要に応じてそちらも参考にしてみてください。