web-dev-qa-db-ja.com

サーバーがクライアントに認識されていない認証方法を要求しました[mysql_old_password]

Warning: PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password]
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

ローカルサーバーでPHPスクリプトを使用して、Hostgator上のMySQLデータベースサーバーに接続しようとすると、上記のエラーが発生します。通常、MySQL 4.1以前とMySQL 4.1+の間のパスワードハッシュの問題であることを理解しています。

私が見つけた指示 here に従ってold_passwordを使用するようにローカルサーバーを変更しました。

16ビットハッシュに変更した後も接続できず、エラーメッセージは同じままです。さらに、phpmyadminにログインできなくなりました。 WindowsではXAMPPを使用しています。これらの問題を解決する方法について何か提案がありますか?

7
Chibuzo

MySQL側でこの変更を行ったため、他の唯一のオプションはPHPをダウングレードすることです。

他のリンクはこれをサポートします:

3
RolandoMySQLDBA

同じエラーが発生し、リモートDBに接続するアプリケーションをローカルでデバッグしようとしました。 PHP <5.3を使用すると、すべてが機能しました。 PHP 5.3以降を使用すると、エラーが表示されます。

時間をかけて読んだり調整したりした後、これは特定のユーザーとして接続したときにのみ発生することに気付きました。私が使用するすべてのデータベースには、新しいパスワードの長さ(41)があります。

そのユーザーのパスワードを変更したところ、以前の値に再度変更した後でも、すべてが正常に機能しました。

これが誰かを助けることを願っています。

5
user37847