PHPからMySQL8.0に接続できない?→パスワードの認証方式が変わった

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

この記事について

このページは、CEOが2025年12月21日 13:30に書いた記事です。

ひとつ前の記事は「macOS 26 Tahoeの不具合:スリープからの復帰に時間がかかる」です。

次の記事は「FreeBSDに無線LANの設定を手作業で追加する方法」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。