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 バージョンアップ
- MySQLMySQLの作成元にアクセス
- GCP「SSH」コマンド実行
- 最新のリポジトリをインストール
- 「OS」である「Debian 9」を最新に
- 「MySQL 8.0」 インストール
- phpMyAdmin「MySQL 8.0」を確認
1.1 最新のリポジトリを取得
色々な方のブログ記事なんかで、バージョンアップの仕方が書かれたりしています。ここでは、基本的な部分を抑え、後々他のことに応用ができるように書いていこうと思います。
- 「https://www.mysql.com/jp/」へアクセスします。
- 「DEVELOPER ZONE」「MySQL Downloads」の順番にクリックして、次へ進みます。
1.2 MySQL作成元へ徐々に近づきます。
- 「MySQL APT Repository」をクリックして、次へ進みます。
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」は似て非なるものと思ってもいいくらいかも知れません。
【コメント】 ※「メールアドレス不要」