mysql4.1 Client does not support authentication protocol requested by server; consider upgrading MySQL client


mysql4.1 + php5 で、mysql_connect()を利用しようとすると、上記のエラーがでることがあります。

参考 → http://dev.mysql.com/doc/mysql/ja/Old_client.html
MySQL 4.1 では、パスワードハッシュアルゴリズムに基づく認証プロトコルが使用されていますが、これは旧クライアントが使用しているものと互換性がありません。サーバを 4.1 にアップグレードすると、旧クライアントで接続しようとした場合に、以下のエラーメッセージが発生する可能性があります。」

mysqlにログインして以下のように指定すると解消できます。

mysql> USE mysql;
mysql> UPDATE user SET Password = OLD_PASSWORD('設定するパスワード')
-> WHERE Host = 'ホスト名(localhostなど)' AND User = 'ユーザー名(rootなど)';
mysql> FLUSH PRIVILEGES;