MYSQL 4.1 以降、新しいユーザー認証プロトコルが採用され、古いクライアントでは認証プロトコルがサポートされていないというエラーが発生します。 以下は公式 Web サイトの解決策です。
1すべてのクライアント プログラムを 4.1 を使用するようにアップグレードします。 .1 以降のクライアント ライブラリ。
クライアント ライブラリを更新します。これには、PHP 拡張ライブラリの更新が必要です。PHP は、古い API 用の拡張ライブラリを提供しなくなりました。
2 4.1 より前のクライアント プログラムでサーバーに接続する場合、 4.1 より前の形式のパスワードがまだ残っているアカウントを使用してください
以前に確立されたアカウントを使用して接続することは、新しい認証プロトコルで確立されたアカウントには機能しません
3必要な各ユーザーのパスワードを 4.1 より前の形式にリセットします。 4.1 より前のクライアント プログラムを使用するには、SET PASSWORD ステートメントと OLD_PASSWORD() 関数を使用します: mysql> SET PASSWORD FOR
->または、更新権限とフラッシュ権限を使用します: mysql & gt; update mysql.use set password = OLD_PASSWORD host 'and user =' SOME_USER ';
Flush Privileges;前の例では、MySQL は元のパスワードを知ることができないため、新しいパスワードを選択する必要があります
これは、新しいパスワードを作成する良い方法です
4 サーバーに伝えます。古いパスワード ハッシュ アルゴリズムを使用するには:
--old-passwords オプションを指定して mysqld を起動します
この方法では、新しい認証プロトコルの利点を使用できません
5 古い形式のパスワードを各アカウントに割り当てます。これらのアカウントは次のクエリで識別できます: mysql> SELECT Host, User, Password FROM mysql.user
-> それぞれクエリによって表示されるアカウント レコードを確認するには、ホストとユーザーの値を使用し、OLD_PASSWORD() 関数と SET PASSWORD または UPDATE を使用してパスワードを割り当てます。
古いスタイルにアップグレードされたパスワードを復元します。