ローカル環境でMySQLとPHPの通信がうまくいかず、データベース接続確立エラーと表示される

ワードプレスのwp-config.phpにきちんとデータを入力したにもかかわらず、ブラウザに「データベース接続確立エラー」と表示されました。

そこでPHPファイルを作成し、MySQLと通信ができているか簡単にテストしたところ、パスワードで弾かれていることがわかりました。

原因を探すとMySQL 8では パスワードがデフォルトで暗号化されるので(cache_sha2_password) プログラムから接続する場合もこれに対応していないと接続ができないとのこと。

対処法

MySQL側で以下の用に対応しました。

vi /etc/my.cnf

[mysqld] 直下に以下を追記します。

default_authentication_plugin= mysql_native_password

次のようになります。

[mysqld]
default_authentication_plugin= mysql_native_password

mysqldを再起動します。

$ systemctl restart mysqld

こうした上でユーザを作成し、wp-config.phpを編集すると、ワードプレスのインストール画面に接続できました。

もしくは CREATE USER 時に IDENTIFIED WITH mysql_native_password BY ‘password’ を使用して パスワードを設定しても上手くいきます。