ここの通りにやったことを端折りながら下手な和訳してみただけ。
https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16-04
※まず現在の場所を調べる。
MySQLに入る。
1 |
$ mysql -u root -p |
入ったら以下のコマンドを入力する。
1 |
mysql> select @@datadir; |
うちの環境でも/var/lib/mysql/だった。
exitでMySQLを抜ける。
※MySQLをシャットダウンして、ちゃんと止まったか確認する。
1 |
$ sudo systemctl stop mysql |
1 |
$ sudo systemctl status mysql |
※データベースのディレクトリを新しい場所(ここでは/mnt/volume-nyc1-01/)へコピーする。
1 |
sudo rsync -av /var/lib/mysql /mnt/volume-nyc1-01/ |
※待つ。
※古い方は、一応安全のために名前だけ変更(名前に.bakを追加)してまだ取っておく。
1 |
sudo mv /var/lib/mysql /var/lib/mysql.bak |
※/etc/mysql/mysql.conf.d/mysqld.cnfを編集して、
1 |
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf |
datadir=/mnt/volume-nyc1-01/mysql
のように変更する。
※/etc/apparmor.d/tunables/aliasを編集して、
1 |
$ sudo nano /etc/apparmor.d/tunables/alias |
最後に、
alias /var/lib/mysql/ -> /mnt/volume-nyc1-01/mysql/,
を追加してから、AppArmorを再起動する。
1 |
$ sudo systemctl restart apparmor |
1 |
$ sudo mkdir /var/lib/mysql/mysql -p |
を実行する。
※MySQLを再起動させる。
1 |
$ sudo systemctl start mysql |
1 |
$ sudo systemctl status mysql |
最初にやったようにディレクトリを確認して設定どおりになってれば完了だ。