MySQLi を使用した古い認証で MySQL 4.1 に接続する
MySQLi を使用して MySQL データベースへの接続を確立しようとすると、次のエラー:
Connect Error (2000) mysqlnd cannot connect to MySQL 4.1+ using old authentication
このエラーは、MySQL バージョン 4.1 より前の古いパスワード ハッシュ スキームの使用が原因で発生します。新しいバージョンでは古いパスワードを使用できますが、前述の問題が発生する可能性があります。
この問題を解決するには、次の手順に従ってください:
チェックサーバー設定:
SQL クエリ SHOW VARIABLES LIKE 'old_passwords'; を実行します。サーバーのデフォルトが古いパスワード スキーム (old_passwords,Off) になっているかどうかを確認します。
古いパスワードを持つアカウントを識別する:
クエリを使用します。 SELECT User`, `Host`, Length(`Password`) FROM mysql.user` を実行して、ユーザー アカウントとそのパスワードの長さをリストします。パスワードの長さが 16 のアカウントは古いスキームを使用し、長さが 41 の場合は新しいパスワードを示します。
古いアカウントのパスワードの変更:
ステートメント SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); を使用して、古いパスワードを持つアカウントのパスワードを更新します。 「User」 と 「Host」 をクエリの適切な値に置き換えてください。
フラッシュ権限:
FLUSH PRIVILEGES を実行します。
パスワードの長さの確認:
手順 2 のクエリを再実行して、パスワードの長さが 41 になっていることを確認します。 .
これらの手順を実行すると、古いパスワード スキームを使用している場合でも、MySQLi を使用して MySQL データベースに正常に接続できるようになります。
以上がMySQLi を使用して古い認証で MySQL 4.1 に接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。