Ubuntu: WordPressのMySQLデータ移行

WordPressのMySQLホストを新しいサーバーインスタンスに変更したのでメモ。

まずは新サーバー上でMySQL5.7のインストール作業を実施。

$ sudo apt install mysql-server

インストールしたらmysqlに接続。

$ sudo mysql

初期化など。

-- create database
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-- root user
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
-- wordpress user
GRANT ALL ON wordpress.* TO 'wpuser'@'%' IDENTIFIED BY 'password';
-- flush
FLUSH PRIVILEGES;

localhost以外からの接続を許可するためにNICのIPアドレスを追加

# /etc/mysql/mysql.conf.d/mysqld.cnf
# bind-address = 127.0.0.1
bind-address = 10.0.0.2

ここでmysqlを再起動

$ sudo systemctl restart msyql

旧サーバー(10.0.0.3)のMySQLをダンプ

$ mysqldump --single-transaction -h 10.0.0.3 -u root -p --databases wordpress > db.sql

ダンプが終わったら新サーバー(localhost)に投入

$ mysql -u root -p wordpress < db.sql

テーブルが復元されてるのを確認後にWordpressの接続先を変更。
wp-config.phpを編集する。

//define( 'DB_HOST', '10.0.0.3' ); 
define( 'DB_HOST', '10.0.0.4' ); //新サーバー

これで新しいMySQLインスタンスへの移行完了。