最近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”に固定する。
詳細は下記の参考サイトをご確認ください。