やりたいこと
mysqldumpを利用してバックアップ・リカバリ(リストア)をすることで、
WordPress用のデータを移動させる。
環境
ディストリについて
$ cat /etc/redhat-release
の結果は次の通り。
Rocky Linux release 9.1 (Blue Onyx)
引っ越し前の環境
ソフトウェア | バージョン |
WordPress | 5.1.15 |
WordPress DB Version | 44719 |
MariaDB | 5.5.52-1.el7 |
引っ越し後の環境
ソフトウェア | バージョン |
WordPress | 6.2 |
MariaDB | 10.5.16-2.el9_0 |
手順
バックアップ
バックアップに利用したコマンドは次の通り。
$ mysqldump -u ユーザ名 -p -A > 保存場所/backup
MariaDBのインストールと初期設定
次のコマンドでインストール。
# dnf install mariadb mariadb-server
mariadb-serverを起動。
# systemctl start mariadb
初期設定を行うために次のコマンドを実行すると、
# mysql_secure_installation
次のように聞かれる。
Enter current password for root (enter for none):
MariaDBのrootのパスワードはまだ設定していないので、そのままEnterを押す。
You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n]
と聞かれる。nを押してEnterを押す。
You already have your root account protected, so you can safely answer 'n'. Change the root password?
と聞かれる。Yを押してEnterを押すと設定するパスワードを聞かれるので入力する。
Remove anonymous users?
と聞かれる。Yを押してEnterを押す。
Disallow root login remotely?
と聞かれる。Yを押してEnterを押す。
Remove test database and access to it?
と聞かれる。Yを押してEnterを押す。
Reload privilege tables now?
と聞かれる。Yを押してEnterを押す。
WordPressのための設定をMariaDBに行う
MariaDBにログインする。
$ mysql -u root -p
データベースの一覧表示。
> show databases;
DBユーザの一覧表示。
> SELECT user, host FROM mysql.user;
WordPress用DBユーザを作成する。
> CREATE USER ユーザ名@localhost IDENTIFIED BY 'パスワード';
WordPress用DBユーザの権限を表示する。
> SHOW GRANTS FOR ユーザ名@localhost;
下記のような形で、結果が表示される。
+---------------------------------------------------------------------------------------------------------------+ | Grants for ユーザ名@localhost | +---------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `ユーザ名`@`localhost` IDENTIFIED BY PASSWORD '*F7DC3CA42B9C9E4554D96B433C9FA5625A65F5BF' | +---------------------------------------------------------------------------------------------------------------+
WordPress用のDB作成。
> CREATE DATABASE DB名;
作成したWordPress用DBユーザに権限を与える。
> GRANT ALL ON DB名.* TO ユーザ名@localhost;
再度作成したWordPress用DBユーザの権限を表示する。
> SHOW GRANTS FOR ユーザ名@localhost;
下記のような形で結果が表示される。
+---------------------------------------------------------------------------------------------------------------+ | Grants for ユーザ名@localhost | +---------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `ユーザ名`@`localhost` IDENTIFIED BY PASSWORD '*F7DC3CA42B9C9E4554D96B433C9FA5625A65F5BF' | | GRANT ALL PRIVILEGES ON `DB名`.* TO `ユーザ名`@`localhost` | +---------------------------------------------------------------------------------------------------------------+
与えられた権限が表示されていることを確認する。
リカバリ・リストア
次のコマンドでバックアップしていたデータをリストアする。
$ mysql -h localhost -u ユーザ名 -pパスワード < バックアップファイル名
リストアされたデータの一部を確認するために、MariaDBへログイン。
$ mysql -u ユーザ名 -p
指定したデータベースへ接続。
> USE データベース名;
テーブル一覧を確認。
> SHOW TABLES;
指定したテーブルのデータを確認。
> SELECT * FROM wp_users;
特別問題無ければこれでDBの引っ越しはとりあえず完了。
後はwp-content/uploadsフォルダ以下をコピーすれば画像も問題無く表示された。
DBのチューニングもした方が良いのだろうけど、とりあえずしばらくは大丈夫と判断する。