Client does not support authentication protocol が表示されてMySQLに接続できない

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も再起動しないとダメだった。)

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする