第26回 【WordPress】 MySQL5.7→MySQL8.0へアップグレード

WordPress GCP

【PR】
Google Workspace(旧 G Suite)アカウントを作成するならこちら【10%割引クーポン】【プロモーションコード】を自動返信メールにより取得できます。初年度100人まで1つのコードで利用可能です。

1. 第26回 【WordPress】 MySQL5.7→MySQL8.0へアップグレード

環境:Debian 9 PHP 7.4 Apache 2.4.25 MySQL 5.7 Cocoon

目的:MySQL 5.7→MySQL8.0 バージョンアップ

変わったこと?
  • 特に感じません。
    裏側では、PHPに対応したり、プラグインに対応したり、表示速度が2倍早くなったりと色々あるんでしょうけれど、「PHP 7.0」から「PHP 7.4」にした直後だったので、何も感じませんでした。
  • MySQL
    MySQLの作成元にアクセス

  • GCP
    「SSH」コマンド実行
    • 最新のリポジトリをインストール
    • 「OS」である「Debian 9」を最新に
    • 「MySQL 8.0」 インストール
  • phpMyAdmin
    MySQL 8.0」を確認

1.1 最新のリポジトリを取得

色々な方のブログ記事なんかで、バージョンアップの仕方が書かれたりしています。ここでは、基本的な部分を抑え、後々他のことに応用ができるように書いていこうと思います。

  • 「DEVELOPER ZONE」「MySQL Downloads」の順番にクリックして、次へ進みます。

1.2 MySQL作成元へ徐々に近づきます。

  • 「MySQL APT Repository」をクリックして、次へ進みます。
注意点

赤枠の「APT」の方です。赤枠上に「Yum」というのがありますが、これは「Debian 9」ではなくて「Cent OS」のコマンド用だと思います。「Debian 9」を利用している人が少なくて、つまづいてしまったポイントです。

1.3 実際にはダウンロードしません

  • 「Download」ボタンをクリックして、次へ進みます。

1.4 「Download」クリック後

  • 下記画面赤枠「No thanks, just start my download」を右クリックして「リンクをコピー」します。メモ帳などに貼り付けておくと楽です。
  • 「例、https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb」というようなURLです。

1.5 「GCP」の「SSH」起動

  • 「GCP」「VMインスタンス」「SSH」の順番でクリックして、起動します。

1.6 MySQLのバージョンを確認

  • 「SSH」のコマンドで下記を実行して、「MySQL」のバージョンを確認します。「MySQL 5.7」であることが確認できます。
  • 「MySQL」のバージョンを確認できたら、次へ進みます。
$ mysql --version

1.7 最新のリポジトリをインストール

リポジトリということば、初めて聞きました。自分で調べましたので、ご自身で調べてください。どういったものか概念がつかめると思います。

  • 先程「1.4」でゲットした「例、https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb」を利用します。実際には、自分でゲットした最新のURLに置き換えてコマンドを実行してください。
$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb

–2020-06-03 16:55:17– https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb
Resolving dev.mysql.com (dev.mysql.com)… 137.254.60.11
Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://repo.mysql.com//mysql-apt-config_0.8.15-1_all.deb [following]
–2020-06-03 16:55:18– https://repo.mysql.com//mysql-apt-config_0.8.15-1_all.deb
Resolving repo.mysql.com (repo.mysql.com)… 104.88.152.154
Connecting to repo.mysql.com (repo.mysql.com)|104.88.152.154|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 35532 (35K) [application/x-debian-package]
Saving to: ‘mysql-apt-config_0.8.15-1_all.deb’

mysql-apt-config_0.8.15-1_al 100%[===========================================>] 34.70K –.-KB/s in 0.002s

2020-06-03 16:55:18 (17.9 MB/s) – ‘mysql-apt-config_0.8.15-1_all.deb’ saved [35532/35532]

  • このような感じで進んでいきます。止まったらリポジトリのインストールは完了です。

1.8 「OS」である「Debian 9」を最新に

  • 「Debian 9」を最新にします。
$ sudo apt update
  • 何か聞かれたら内容に応じて「y」で進みます。「y」の後は、だいたい長いので少し待ちます。私の場合、この直前で「PHP 7.4」へバージョンアップを行っていますので、何も聞かれませんでした。

1.9 「MySQL 8.0」 インストール

  • 「MySQL」をインストールします。下記のコードは「先ほどアクセスしたMySQL」の公式サイトのものです。これは多分普遍的なものなので、そのまま入力して問題ないと思います。※別のOSを利用している場合、「apt」が「yum」になったりとかありそうですが、、、
$ sudo apt install mysql-server mysql-client
  • この作戦を続けていいか聞かれますので「y」を入力して、次へ進みます。

1.10 なんだこの画面

  • 「SSH」のコマンド実行だけでも苦手なのに、下記画面が登場します。何事も慣れということで、バックアップもとってあるし、次へ進みます。

1.11 下の行を選択

  • Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)
    レガシー認証方法を使用(MySQL 5.x互換性を維持)
  • まず「↓」の矢印ボタンを押して、下の行を選択します。
  • 次に「→」の矢印ボタンを押すと、「<OK>」の部分が赤色に変わります。
  • 最後に「Enter」を思いっきり叩いて、次へ進みます。
  • 何度も間違えて、ここまでたどり着くようになると「Enter」キーを押すのにも気合の入り方が違います。
  • 待ち時間長いです。

1.12 途中でバージョンを聞かれる

update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up mysql-community-server (8.0.20-1debian9) …
Installing new version of config file /etc/mysql/mysql.cnf …

Configuration file ‘/etc/mysql/mysql.conf.d/mysqld.cnf’
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer’s version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** mysqld.cnf (Y/I/N/O/D/Z) [default=N] ?
Progress: [ 90%] [##################################################################################………]

  • これです。「Y or I : install the package maintainer’s version
  • これをインストールするためにやってきたので「y」を入力して、「Enter」を押して、次へ進みます。

1.13 モバイルレイアウト問題③

  • うまくできてしまうときは結構あっけないものですね。

Installing new version of config file /etc/mysql/mysql.conf.d/mysqld.cnf …
Setting up mysql-server (8.0.20-1debian9) …

1.14 「MySQL」のバージョン確認

  • 「MySQL」のバージョンが「MySQL 8.0」になっているのか確認します。
$ mysql --version

mysql Ver 8.0.20 for Linux on x86_64 (MySQL Community Server – GPL)

  • やったぞ!できてる。いや、待て。

忘れるな「Apache 2」再起動

$ sudo service apache2 restart

1.15 「phpMyAdmin」でも確認

  • 「phpMyAdmin」にアクセスして確認します。
  • https://tohyo2020.org/phpmyadmin-url/」を参考にしてください。このバージョンアップする人は、この「phpMyAdmin」へのアクセスには困らないと思いますが。

1.16 「phpMyAdmin」ログイン後

  • 「データベースサーバ」の「サーバのバージョン」で「MySQL 8.0」になっていることが確認できます。

さいごに

前回の「PHP」バージョンアップにしても、今回の「MySQL」バージョンアップにしても、分かってしまえばどうってことないのかも知れませんが、たどり着くまでに結構勉強しないと、基礎的な概念もわかりません。

基本的な専門用語、コマンドの実行の仕方、途中で出てくる質問や、変な画面、引っかかる場所がたくさんあります。その度に調べるんですが、参考になるサイトが結構あってとても助かりました。

その反面、「Debian 9」「Apache 2.4」の組み合わせ環境の人って少なくて、そのままのコマンドではうまくできません。もし、このサイトを参考にできるようであっても、自分の環境に合わせて、コマンドを実行してみてください。

特に「Apache 2.2」と「Apache 2.4」は似て非なるものと思ってもいいくらいかも知れません。


次は、第27回です。


【コメント】 ※「メールアドレス不要」