MySQL8.0.6 に移行後ワードプレスへ接続するとデータベース接続確立エラー ( DB接続エラー ) が発生した。WordPressをデバッグモードに切り替えてエラーを可視化することで、エラーの原因特定がより便利になる方法を紹介します。caching_sha2_password 認証方式をワードプレスが知らないのが原因のため、mysql_native_passwordに変更して対応します。
サーバ環境
MySQL 8.0.6
WordPress 5.2.2
❶ WordPress をデバッグモードに変更してブラウザでエラーメッセージを確認しながら対応
① wp-config.php ファイルを下記のように修正する。
[root@centos7 htdocs]# vi /usr/local/apache2/htdocs/wp-config.php define('WP_DEBUG', false); ↓↓↓ define('WP_DEBUG', true);
② wp-admin に接続すると上部にエラーメッセージが表示される。
caching_sha2_password の問題であることがわかる
❷ DB で修正作業を行う
作成された wp-admin ユーザの認証方式を確認し mysql_native_password に変更する。
[root@centos7 htdocs]# mysql -uroot -p Enter password: ... mysql>SELECT user, host, plugin FROM mysql.user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ | root | % | mysql_native_password | | mysql.infoschema | localhost |caching_sha2_password| | mysql.session | localhost | mysql_native_password | | mysql.sys | localhost |caching_sha2_password| | root | localhost | mysql_native_password | |your-wp-admin | localhost |caching_sha2_password | # << your-wp-adminユーザの認証方式が caching_sha2_password +------------------+-----------+-----------------------+ 10 rows in set (0.00 sec) mysql> mysql> ALTER USER 'your-wp-admin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-password'; Query OK, 0 rows affected (0.06 sec) mysql> SELECT user, host, plugin FROM mysql.user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ | root | % | mysql_native_password | | mysql.infoschema | localhost | caching_sha2_password | | mysql.session | localhost | mysql_native_password | | mysql.sys | localhost | caching_sha2_password | | root | localhost | mysql_native_password | |your-wp-admin | localhost |mysql_native_password| # << your-wp-adminユーザの認証方式が mysql_native_password +------------------+-----------+-----------------------+ 10 rows in set (0.00 sec) mysql>flush privileges; Query OK, 0 rows affected (0.03 sec) mysql> \q Bye
❸ 新規ユーザーを作成する際の認証方式を変更しておく
WordPress ユーザーは、ここに認証方式を変更した後、作成するのがお勧め。
vi /etc/my.cnf
[mysqld] ... default-authentication-plugin = mysql_native_password ...
コメント