MySQL8.0.4から、パスワードの認証方式が変わっているため(caching_sha2_password
)、PHPから接続する際に、古いパスワードの認証方式(mysql_native_password
)で行っていると以下のようなエラーが表示されます。
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
この記事では、caching_sha2_passwordから、mysql_native_passwordへ変更する方法を案内しています。
まず、以下のコマンドでMySQL Serverに接続します。
mysql -u root -p
以下のSQL文で現在の設定を確認します。
SELECT user, host, plugin FROM mysql.user WHERE user='root';
以下のように出力されるはずです。
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| root | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
以下のSQL文でrootのパスワードをmysql_native_password変更します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEWPASSWORD';