浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【PHP】いつの間にやらPDOはMySQLの認証方法 caching_sha2_password に対応済み

 一年ほど前からいくらか最近までMySQLの新たな認証方式である caching_sha2_password にPHPのSQLを扱う仕組みであるPDOは対応できていませんでした。このためMySQL側で対応する必要がありました。
MySQL Server 8.0からデフォルトの認証方式が変更。MySQLiやPDOではまだ扱えないため要注意。 – 株式会社シーポイントラボ | 浜松のシステム・RTK-GNSS開発

 いつのまにやらこの変更の必要は解消されました。具体的には7.1.16以降と7.2.4以降と7.4.4以降のバージョンです(7.4はバグ混じりながらもう少し前からサポートしてるっぽい?)。このPHPバージョンならば特別MySQLの設定を弄らずともすぐにPHP越しにMySQLを触れます。
PHP: MySQL (PDO) – Manual

PHP 7.1.16 より前のバージョン、もしくは PHP 7.2.4 より前の 7.2系の PHP では、 MySQL 8 サーバのデフォルトパスワードプラグインを mysql_native_password に設定するようにしてください。 さもないと、 The server requested authentication method unknown to the client [caching_sha2_password] のようなエラーを見ることになります。たとえあなたが caching_sha2_password を使っていなくても、です。

 7.3が仲間外れなのは以下のプルリクエストを見るにPDOのコードが混ぜるな危険になっているためな感じがします。
Fix caching_sha2_password auth by nikic · Pull Request #5034 · php/php-src

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