はじめに

MySQLのデータベース保存先を変更する際に手間取ったのでマニュアル化。

環境

項目 バージョン
OS CentOS 7.4
MySQL MySQL 5.7
移行元 /var/lib/mysql
移行先 /database/mysql

概略

image.png

  • 当初、/etc/my.confの中身を書き換えて参照先を変えようとしていた
  • アクセス権とかsocketファイルとか諸々の問題が出てきてうまく行かなかった
  • 諸々:サービス自体は起動できてるのにクライアントからログインできないとか
  • 予定を変更して、シンボリックリンクを貼ることで対応した

手順

念のためデータディレクトリを確認する

console
mysql -u (user_name) -p
console
show variables like 'datadir';

MySQLサービスを止める

console
systemctl stop mysqld

データディレクトリをコピーしてリネーム

console
cp -prf /var/lib/mysql /database
mv /var/lib/mysql /var/lib/mysql.org

シンボリックリンクを作成してサービス起動

console
cd /var/lib
ln -s /database/mysql

systemctl start mysqld

SELinuxとの関係性

何かエラーが発生した場合、とりあえずSELinux止めて動くかどうか確認してください。

うまく行かなかった方法

こちらの方法で対応したのですが、どうもうまく行きませんでした…。
他の文献を見ててもこのやり方で上手く行ってるので、こちらの設定が誤っている可能性がありますが…シンボリックリンク貼ったほうがお手軽でいいかな、と。