MySQL5.1とPHP5.2.17で接続しようとしたところ、下記のエラーが表示されて、PHPからMySQLに接続できなかった。
(これを使いたいわけではなく、かなり前に作った検証環境・・・)
このエラーは、MySQLのバージョンにより、認証方式が変更されたことによる影響。
PHP側のMySQLクライアントのバージョンが古いのが原因。
■エラーメッセージ
Client does not support authentication protocol requested by server; consider upgrading MySQL client.
PHP側のMySQLクライアントを新しいものにするのが一番だが、 できないときはMySQLの設定を変更することで回避可能。
対応方法としては、my.cnfに古いパスワード形式の指定をする。
[mysqld] (・・・中略・・・) old_passwords = 1
my.cnfの中から、[mysqld] の箇所を探して、そこに「old_passwords=1」の記述を入れる。
設定変更した後は、MySQLサーバのプロセスを再起動する。
テストしても、同じ様になる場合は、念のため、ウェブサーバも再起動する。
(自分の環境では、Apacheも再起動しないとダメだった。)