ホームページ >php教程 >php手册 >PHP 5 が mysql 5 に接続する際の認証プロトコルの問題

PHP 5 が mysql 5 に接続する際の認証プロトコルの問題

WBOY
WBOYオリジナル
2016-06-21 09:15:42993ブラウズ

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





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