安全でない認証による MySQL 接続エラーの修正
データベース接続を確立しようとすると、次のエラーが発生する場合があります:
Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password').
この問題は、PHP と MySQL のバージョンが一致しないために発生します。 MySQL はセキュリティ対策を強化し、より安全な認証方法の使用を必要としています。
解決策:
-
サーバー構成の更新:
- Web ホスティング サーバー (メディア テンプル) で、ホストと相談して MySQL バージョンを 5.5.16 以降に更新します (ローカル マシンのバージョンと一致します)。
-
安全でない認証を無効にする:
- 「my.cnf」構成ファイルを見つけます (例: 「/etc/my.cnf」)または "/opt/lampp/etc/my.cnf")。
- 「old_passwords = 1」の行を削除またはコメント アウトします。
-
MySQL の再起動:
- 変更を適用するには、MySQL サービスを再起動します。
-
パスワードのリセット:
- 管理ツール (MySQL Workbench や phpMyAdmin など) を使用して MySQL データベースに接続します。
- クエリ「SELECT user, Length(Password) FROM mysql.user;」を実行します。安全でないパスワード (16 文字のハッシュ) を持つユーザーを識別します。
- クエリ「UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username」を使用して、安全でない認証を持つ各ユーザーのパスワードを更新します。 ';".
-
フラッシュ権限:
- クエリ「FLUSH PRIVILEGES;」を実行します。
追加の考慮事項:
- PHP 5.2 以前を使用している場合サーバー側では、古い認証方法を許可するために「my.cnf」ファイルから「old-passwords」フラグを削除する必要がある場合があります。
- エラーで説明されているように、MySQL root ユーザーのパスワードが安全であることを確認してください。メッセージ。
以上がコンテンツに基づいて、質問形式の記事タイトルのオプションをいくつか示します。
**一般およびエラー メッセージに焦点を当てる:**
* **「mysqlnd が次の方法を使用して MySQL 4.1 に接続できない」を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。