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

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG