mysql|php5|問題
MYSQL 4.1 以降、新しいユーザー認証プロトコルが採用され、古いクライアントでは認証プロトコルがサポートされていないというエラーが発生します。次の解決策が公式 Web サイトにあります。
1すべてのクライアント プログラムを 4.1 を使用するようにアップグレードします。 1 以降のクライアント ライブラリ。
クライアント ライブラリを更新します。これには、PHP 拡張ライブラリの更新が必要です。PHP では、古い API 用の拡張ライブラリは提供されなくなりました。
2 4.1 より前のクライアント プログラムでサーバーに接続する場合は、 4.1 より前の形式のパスワードがまだ残っているアカウント
以前に確立されたアカウントを使用して接続することは、新しい認証プロトコルで確立されたアカウントには機能しません
3 4.1 より前のクライアント プログラムでは、SET PASSWORD ステートメントと OLD_PASSWORD() 関数を使用して実行できます。 、UPDATE および FLUSH PRIVILEGES を使用します: mysql> UPDATE mysql.user SET Password = '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 を使用してパスワードを割り当てます。古いスタイルにアップグレードされました。