ホームページ  >  記事  >  php教程  >  PHP5 が Mysql5 に接続する際の認証プロトコルの問題

PHP5 が Mysql5 に接続する際の認証プロトコルの問題

高洛峰
高洛峰オリジナル
2016-12-02 14:00:211478ブラウズ

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 を使用してパスワードを割り当てます。

古いスタイルにアップグレードされたパスワードを復元します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。