ホームページ >データベース >mysql チュートリアル >MySQL で「ユーザー 'root'@'localhost' のアクセスが拒否されました」というメッセージが表示されるのはなぜですか?

MySQL で「ユーザー 'root'@'localhost' のアクセスが拒否されました」というメッセージが表示されるのはなぜですか?

DDD
DDDオリジナル
2024-12-15 09:28:13323ブラウズ

Why Am I Getting

権限がないため、ユーザー 'root'@'localhost' のアクセスが拒否されました

問題:

root ユーザーとして MySQL にアクセスしようとすると、次のような問題が発生します。 「ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワード: YES を使用)」エラー。root ユーザーに接続を確立するために必要な権限がないことを示します。

説明:

デフォルトでは、MySQL 5.7 以降は主にローカル接続のソケット認証に依存します。これは、「sudo mysql」としてコマンド ライン経由で接続しようとする場合、パスワードは必要ないことを意味します。ただし、この認証方法では root ユーザーに特定の権限は付与されません。

解決策:

パスワードベースの接続を確立し、root ユーザー権限を付与するには:

  1. 「SELECT user、authentication_string、plugin、host FROM mysql.user;」を実行します。現在のユーザー構成を確認するためのクエリ。 root ユーザーの認証プラグインが「auth_socket」であることを確認します。
  2. 「ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';」を実行します。 root ユーザーの認証方法をソケットからネイティブに変更するステートメント。
  3. 「FLUSH PRIVILEGES;」を実行します。コマンドを使用して、変更が有効になっていることを確認します。
  4. 手順 1 を繰り返して、root ユーザーの認証プラグインが「mysql_native_password」に変更されたことを確認します。

追加の考慮事項:

  • 「Current-Root-Password」は、既存の root ユーザーのパスワードに置き換える必要があります。
  • MySQL バージョン 5.7 より前の場合、認証方法は「caching_sha2_password」である可能性があります。この場合、「ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Current-Root-Password';」を使用します。
  • MariaDB ユーザーの場合、次のコマンドを使用して root ユーザーのパスワードを設定できます: "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');"

以上がMySQL で「ユーザー 'root'@'localhost' のアクセスが拒否されました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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