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';