レガシー認証を使用して MySQL 4.1 への接続を確立できません
bluesql.net でホストされている MySQL データベースに接続しようとすると、 MySQL 4.1 より前のバージョンで採用されていた古い認証メカニズムを使用して接続を確立できないことを示すエラーが発生します。この問題は、後続の MySQL リリースでの新しい認証方法の実装に起因しますが、古いパスワード スキームが依然として残っている可能性があり、特定のアプリケーションとの互換性を妨げる可能性があります。
あなたの場合、PHP 5.3 と mySQLi 拡張機能 ( new mysqli(...)) を使用してデータベースに接続します。 PHP バージョンをダウングレードせずにこの問題に対処するには、次の手順を検討する必要があります。
古いパスワード スキーマの使用状況を確認する
試行している MySQL サーバーがアクセスするサーバーは、次の SQL クエリを実行することで古いパスワード スキーマを利用するように設定されています:
SHOW VARIABLES LIKE 'old_passwords'
クエリの結果に「old_passwords,Off」と表示される場合は、サーバーが古いパスワード スキーマを使用するように設定されていることを示します。パスワード スキーマ。
古いパスワードを持つアカウントの特定
mysql.user テーブルを調べて、古いパスワードをまだ使用しているユーザー アカウントを特定します。次のクエリを実行します:
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user
古いパスワードを持つアカウントのパスワードの長さは「16」ですが、新しいパスワードを持つアカウントの長さは「41」になります。
影響を受けるアカウントの新しいパスワードの設定
古いパスワードで識別されたアカウントごとに、次のコマンドを使用して新しいパスワードを設定します:
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); FLUSH Privileges;
「ユーザー」と「ホスト」を置き換えます
パスワード更新の確認
更新されたアカウントのパスワードの長さを再確認します。新しいパスワード スキーマが使用されていることを示す「41」が表示されます。
これらの手順に従うことで、認証の互換性の問題を正常に克服し、bluesql.net で MySQL データベースへの接続を確立できます。 .
以上がレガシー認証を使用して MySQL 4.1 に接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。