mysql|問題
MYSQL 4.1 以降、新しいユーザー認証プロトコルが採用され、古いクライアントでは認証プロトコルがサポートされていないというエラーが発生します。以下は公式 Web サイトからの解決策です﹔
1すべてのクライアント プログラムをアップグレードしてください。 4.1.1 以降のクライアント ライブラリ。
クライアント ライブラリを更新します。これには、古い API の場合、PHP はそのような拡張ライブラリを提供しません
2 プリを使用してサーバーに接続する場合。 -4.1 クライアント プログラムの場合は、4.1 より前の形式のパスワードが残っているアカウントを使用します。4.1 より前のクライアント プログラムを使用する必要があるユーザーごとに、パスワードを 4.1 より前の形式にリセットします。これは、SET PASSWORD ステートメントを使用して実行できます。 OLD_PASSWORD() 関数: mysql> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd'); または、UPDATE および FLUSH PRIVILEGES を使用します。 ql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user ';
「newpwd」を使用するパスワードに置き換えます。前の例では、MySQL は元のパスワードを知ることができないため、新しいパスワードを選択する必要があります
これは良いアイデアです
4古いパスワード ハッシュ アルゴリズムを使用するサーバー:
--old-passwords オプションを指定して mysqld を起動します
この方法では、新しい認証プロトコルの利点を使用できなくなります
5古い形式を割り当てます。より長い 4.1 形式に更新された各アカウントのパスワードを次のクエリで識別できます: mysql> SELECT Host, User, Password FROM mysql.user
-> 16;
前に説明したように、クエリによって表示されるアカウント レコードごとに、ホストとユーザーの値を使用し、OLD_PASSWORD() 関数と SET PASSWORD または UPDATE を使用してパスワードを割り当てます。