MySQL Server 8.0からデフォルトの認証方式が変更。MySQLiやPDOではまだ扱えないため要注意。

takahashi 著者:takahashi

MySQL Server 8.0からデフォルトの認証方式が変更。MySQLiやPDOではまだ扱えないため要注意。

最近MySQLの最新バージョンである8.0のちょっと大きめな仕様変更を知ったので、記事にしたいと思います。

MySQL8.0では、デフォルトの認証方式が従来の “mysql_native_password”から”caching_sha2_password”へと変更されています。

このcaching_sha2_passwordですが、実はまだ対応できてないクライアントやプラグインが多く、何も知らずにMySQL 8.0を使用してしまうと、プログラムなどから接続できなくなる事態が発生してしまいます。

特にPHPではMySQLへの接続に MySQLiやPDO_MySQLを主に使用しますが、いずれも”caching_sha2_password”には現時点で対応しておらず、MySQLへ接続しようとすると失敗します。

そのため、現時点でPHPからMySQL8.0系に接続するためには、MySQL側の設定を変更する必要があります。

変更すべき点は下記の2つです。
・MySQLユーザーごとの接続方式の指定を”mysql_native_password”に変更する。
・MySQLのコンフィグファイルで、デフォルトの認証方式を”mysql_native_password”に固定する。

詳細は下記の参考サイトをご確認ください。

phpからMySQL 8.0へPDOで接続時「SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client」 – Symfoware

  • この記事いいね! (0)

著者について

takahashi

takahashi administrator

Webエンジニア。 趣味で自宅サーバーを稼働中。 ファンタジーが好き。