概要
2021年11月、さくらインターネットのカスタマーセンターよりメールがあり、内容はMySQL5.1, 5.5から5.7へのアップグレードを推奨するものだった。5.5のサポート終了やWordPressなどCMSの推奨環境のバージョンアップなどの背景によるもの。
私の環境はさくらレンタルサーバーのスタンダードプラン。後述の経緯もあって少しとまどったが、アップグレードとWordPressの設定を終えた。
状況としては、
- MySQL5.5と並んで、既にMySQL5.7が稼働していた
- WordPressで使っていたのはMySQL5.5の方
手順の概要は
- 5.7のWordPress用データベースを削除
- 5.5のWordPress用データベース以外を削除
- アップグレード予約・実行
wp-config.php
書き換え
経緯
今回の経緯は以下のとおり。
- 2016年、さくらレンタルサーバー(スタンダードプラン)の利用開始
- このときにMySQL、WordPressも運用開始
- その後2021年6月までの間に5.5→5.7へアップグレード
- アップグレード後も5.5は存続
- このときにWordPressの設定は変更せず
- このため、これ以降も投稿等は5.5の方に記録
- 2021年11月に5.7へのアップグレード推奨メール
- 2021年12月に再度アップグレードとWordPress設定変更完了
確認作業
データベース構成
メールを受けてさくらサーバーのコントロールパネルで確認したところ、以下の2つのデータベース(以下、DB)が存在。
mysql57.アカウント名.sakura.ne.jp
→MySQL5.7
(mysql2019.db.sakura.ne.jp
)
→システムの管理で使われるホスト名mysql304.db.sakura.ne.jp
→MySQL5.5
5.5のデータベースは以下のとおり。
information_schema
はMySQLの管理用_wp1
はWordPress用のDB_main
と_test
の2つはテスト用に自分で作成したもので、特に重要ではない
1 2 3 4 5 6 7 8 9 10 |
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | アカウント名_main | | アカウント名_test | | アカウント名_wp1 | +--------------------+ 4 rows in set (0.05 sec) |
5.7のデータベースは以下のとおり。こちらにもWordPress用の_wp1
があり、他のDBも5.5と同じ。
1 2 3 4 5 6 7 8 9 10 11 |
mysql> show databases; +---------------------------+ | Database | +---------------------------+ | information_schema | | アカウント名_main | | アカウント名_test | | アカウント名_test_utf8mb4 | | アカウント名_wp1 | +---------------------------+ 6 rows in set (0.07 sec) |
WordPress用データベース
MySQL5.5、5.7ともアカウント名_wp1
のテーブル構成は同じで、以下のとおり。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
mysql> show tables; +----------------------------+ | Tables_in_アカウント名_wp1 | +----------------------------+ | wp_ts01_commentmeta | | wp_ts01_comments | | wp_ts01_links | | wp_ts01_options | | wp_ts01_postmeta | | wp_ts01_posts | | wp_ts01_term_relationships | | wp_ts01_term_taxonomy | | wp_ts01_termmeta | | wp_ts01_terms | | wp_ts01_usermeta | | wp_ts01_users | +----------------------------+ 12 rows in set (0.00 sec) |
ここで、5.5と5.7でwp_ts01_posts
に以下のような違いがあった。
5.5の投稿数。投稿日付は2016年6月16日~2021年12月13日で確認時点の日付まで。
1 2 3 4 5 6 7 |
mysql> select count(*) from wp_ts01_posts; +----------+ | count(*) | +----------+ | 12500 | +----------+ 1 row in set (0.02 sec) |
5.7の投稿数。2016年6月16日~2021年2月8日まで。
1 2 3 4 5 6 7 |
mysql> select count(*) from wp_ts01_posts; +----------+ | count(*) | +----------+ | 9192 | +----------+ 1 row in set (0.01 sec) |
5.5に対して5.7の投稿数が少なく、途中までの投稿記録で途切れている。
wp-config.php
のMySQLホスト名を確認すると、以下のようにMySQL5.5の方のホスト名になっていて、MySQL5.7運用開始後もWordPressは5.5を使っている。
1 2 3 4 |
........ /** MySQL のホスト名 */ define('DB_HOST', 'mysql304.db.sakura.ne.jp'); ........ |
したがってMySQL5.7運用開始後もWordPressでは利用されず、投稿等は5.5の方に記録されていることになる。このことから5.7のWordPress用データベースを破棄して5.5のデータベースに入れ替え、設定変更することにする。
アップグレード
要点
アップグレードの要点は、さくらインターネットのサイトによると以下のとおり。
- MySQLの5.5→5.7へのアップグレードは、既に5.7が存在していても可能
- アップグレード先の5.7に5.5と同じ名前のDBが存在する場合はアップグレード不可
- アップグレードはDBを指定して実行時間を予約
- アップグレード後にWordPress等の設定変更が必要
データベースの整理方針
5.5のデータベースをアカウント名_wp1
のみ残して削除し、アップグレード先の5.7の同じ名前のDBを削除。
- 5.5の他のデータベースは自分で作成したテスト用のものだけなので、削除しても問題ない
- 5.7の
アカウント名_wp1
は途中までしか投稿記録がなく、不要と判断 - 双方の
information_schema
は残置
アップグレードの予約
アップグレードの予約はコントロールパネルで行った。
-
さくらのコントロールパネルで
-
5.7の
アカウント名_wp1
を削除 -
5.5の
アカウント名_wp1
以外を削除
-
-
information_schema
はコントロールパネルでは表示されないが5.5、5.7とも残置 -
12/21の02時にアップグレード予約
アップグレードの確認
翌朝確認したところ、MySQL5.7の方にアカウント名_wp1
が作成されており、コンソールで確認したところ昨日までの最新の投稿が記録されていた。
コメントが2件、2時以降についていたが、いずれもspam判定のもので、内容も確認して無視。
WordPressの設定変更
コンソールでも可能だが、さくらインターネットサイトにあるとおりファイルマネージャーで実行。
- コントロールパネル左の”Webサイト/データ”→”インストール済み一覧”を選択して、でWordPressのインストール先を確認
- “Webサイト/データ”→”ファイルマネージャー”を開いて上記のディレクトリーに移動
wp-config.php
を確認- コンソールで
wp-config.php
のコピーを別名で保存(バックアップ用) - ファイルマネージャーで
wp-config.php
を右クリック→編集- MySQLのホスト名の変更
123/** MySQL のホスト名 */define('DB_HOST', 'mysql304.db.sakura.ne.jp');# 'mysql57.アカウント名.sakura.ne.jp'に変更 - DB名は同じ名前なので変更しない
12/** WordPress のためのデータベース名 */define('DB_NAME', 'アカウント名_wp1'); - パスワードも変更していないのでそのまま
12/** MySQL データベースのパスワード */define('DB_PASSWORD', '********');
- MySQLのホスト名の変更
- ファイルマネージャーで”保存”、”閉じる”
WordPressの設定後確認
設定変更後、以下を確認した。
- WordPressが正常に表示される
- 新規投稿を書き込み、投稿が反映されること、その内容がMySQLのDBのテーブルに反映されていることを確認
- 新規投稿を削除し、削除が反映され、テーブルにも削除経緯が反映されることを確認