ホームページ > データベース > mysql チュートリアル > MySQL が「特権のないユーザー 'root' のアクセスが拒否されました」というメッセージを返すのはなぜですか?それを修正するにはどうすればよいですか?

MySQL が「特権のないユーザー 'root' のアクセスが拒否されました」というメッセージを返すのはなぜですか?それを修正するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-19 14:22:09
オリジナル
964 人が閲覧しました

Why Does MySQL Return

特権のないユーザー 'root' のアクセスが拒否されました: 根本原因の詳細を調べる

この一般的に発生するエラー、「ユーザーのアクセスが拒否されました」 'root'@'localhost' (パスワードを使用: YES) - 特権がありません?」はありません軽く見られること。これは、管理者が重要なデータベース操作にアクセスすることを効果的にブロックします。根本的な問題は、多くの場合、root ユーザーのスキーマ権限が剥奪され、権限がなくなったことに起因します。

点と点の接続: MySQL 5.7 とソケット接続

MySQL バージョン 5.7 および上記では、ソケット接続がデフォルトで有効になっていることに注意してください。これは、接続を確立するには「sudo mysql」を使用するだけで十分であることを意味します。ただし、「SHOW GRANTS FOR root;」を実行すると、 「root」ユーザーに定義された権限が存在しないことが判明する可能性があります。

root 権限の再利用

root アクセスを復元するには、次の手順を実行できます。

  1. 認証プラグインの識別:クエリ「mysql.user からユーザー、認証文字列、プラグイン、ホストを選択します。」 root ユーザーに使用される認証プラグインを決定します。ほとんどの場合、これは「auth_socket」になります。
  2. ネイティブパスワード認証への切り替え: root がパスワードを使用して接続するには、mysql.user テーブルの「authentication_string」値を次のように更新します。コマンド「ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY」 'Current-Root-Password';".
  3. 権限の更新: "FLUSH PRIVILEGES;" を実行します。
  4. 変更の確認: 「SELECT user,authentication_string, plugin, host FROM mysql.user;」を再実行します。 root ユーザーが「mysql_native_password」認証を使用していることが表示されるはずです。

追加の考慮事項

MariaDB の場合、コマンド「SET PASSWORD FOR '」 root'@'localhost' = PASSWORD('manager');"パスワードを設定するために使用する必要があります。

この解決プロセスは、アクセス拒否エラーが発生する前に「sudo mysql_secure_installation」コマンドが正常に実行されていることを前提としています。そのコマンドが完了していない場合は、最初に実行することをお勧めします。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート