ホームページ  >  記事  >  データベース  >  「mysqlnd がレガシー認証を使用して MySQL 4.1 に接続できません」エラーを修正する方法

「mysqlnd がレガシー認証を使用して MySQL 4.1 に接続できません」エラーを修正する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-25 06:18:29401ブラウズ

How to Fix

エラー: mysqlnd レガシー認証を使用して MySQL 4.1 に接続できません

PHP 5.3 および MySQL 5.5 スキーマを使用すると、開発者は次のような問題が発生する可能性があります。 error:

Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. 

このエラー メッセージは、MySQL 4.1 以前のバージョンで採用されている古い認証メカニズムが原因で、MySQL ネイティブ ドライバーである mysqlnd が安全な接続を確立できないことを示します。

問題の解決

この接続の問題を解決するには、次の手順に従います。

  1. 「old_passwords」設定を削除するかコメントアウトします。 .cnf:

    my.cnf 構成ファイルを変更し、「old_passwords = 1」を含む行を見つけます。この行を削除するか、先頭に「#」文字を追加してコメントアウトします。

  2. MySQL を再起動します:

    MySQL サービスを再起動して、 my.cnf に加えられた変更を適用します。この手順により、MySQL で新しいパスワード形式が使用されるようになります。スキップした場合、MySQL は引き続き安全でない形式を使用します。

  3. ユーザー パスワードの更新:

    データベースに接続し、次のクエリを実行して識別します。古いパスワードを持つユーザー:

    SELECT user, Length(`Password`) FROM  `mysql`.`user`;

    このクエリは、古い (16 文字) と新しい (41 文字) の両方のパスワード ハッシュを持つユーザーを表示します。

  4. パスワード更新の実行:

    16 文字のパスワード ハッシュを持つユーザーの場合は、次のコマンドを使用してパスワードを更新します:

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';

    「username」を実際のユーザー名と「password」に置き換えます。 ' を希望の新しいパスワードに置き換えます。

  5. フラッシュ権限:

    最後に、次のコマンドを実行して更新されたパスワードを適用します:

    FLUSH PRIVILEGES;

これらの手順を完了すると、レガシー認証によって引き起こされる接続の問題を解決し、mysqlnd を使用して MySQL への安全な接続を確立できます。

以上が「mysqlnd がレガシー認証を使用して MySQL 4.1 に接続できません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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