MySQL 4.1 に接続する際の認証の問題の解決
bluesql.net でホストされている MySQL データベースに接続しようとすると、エラーが発生する場合がありますmysqlnd が古い認証を使用して接続できないことを示します。このエラーは、MySQL バージョン 4.1 以降で古いパスワード スキームが廃止されたことが原因で発生します。新しいバージョンでは下位互換性が確保されていますが、接続の問題が発生する場合があります。
この問題に対処するには、次のクエリを実行して、サーバーが古いパスワード スキーマを使用するように設定されているかどうかを確認できます。
SHOW VARIABLES LIKE 'old_passwords';
old_passwords,Off が返された場合は、ユーザー テーブル内の古いパスワード エントリに問題がある可能性があることを意味します。サーバーは、これらのアカウントに対してデフォルトで古い認証ルーチンを使用します。これを解決するには、新しいパスワードを設定する必要があります。これにより、新しいルーチンの導入がトリガーされます。
特定のアカウントで使用される認証ルーチンを確認するには、mysql.user テーブルをクエリします。
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user;
このクエリはパスワードの長さを返します。長さ 16 は古いパスワードを示し、41 は新しいパスワードを表します。
パスワードが古い場合は、MySQL 管理ツールを使用するか、次のクエリを実行して更新できます。
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); FLUSH Privileges;
User と Host を前のクエリから取得した値に置き換えてください。このクエリを実行した後、パスワードの長さを再度確認してください。これで 41 になり、クライアントが正常に接続できるようになります。
以上がMySQL 4.1 データベースに接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。