WordPress データベース接続確立エラーデバッグ

MySQLとWordPress環境でのデータベース接続確立エラー(DB接続エラー)に対応する | CentOS 7

MySQL8.0.6とWordPress5.2.2環境でのデータベース接続確立エラー(DB接続エラー)に対応する | CentOS 7 WordPress
スポンサーリンク

MySQL8.0.6 に移行後ワードプレスへ接続するとデータベース接続確立エラー ( DB接続エラー ) が発生した。WordPressをデバッグモードに切り替えてエラーを可視化することで、エラーの原因特定がより便利になる方法を紹介します。caching_sha2_password 認証方式をワードプレスが知らないのが原因のため、mysql_native_passwordに変更して対応します。

サーバ環境

MySQL 8.0.6
WordPress 5.2.2

エラー内容:

Warning: mysqli_real_connect(): The server requested authentication method unknown to the clien [caching_sha2_password] in /usr/local/apache2/htdocs/wp-oncludes/wp-db.php on line 1612

Warning: mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client in /usr/local/apache2/htdocs/wp-includes/wp-db.php on line 1612

The server requested authentication method unknown to the client

❶ 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

...
スポンサーリンク

コメント

タイトルとURLをコピーしました