ホームページ >データベース >mysql チュートリアル >MySQL アクセスが拒否されました:「ユーザー ''@'localhost' のアクセスが拒否されました」エラーのトラブルシューティングと解決方法
MySQL アクセス拒否エラー: トラブルシューティングと解決策
MySQL クエリを実行しようとすると、「エラー 1044 (42000):」が発生する場合があります。ユーザー「''@'localhost' のデータベース 'db' へのアクセスが拒否されました」 メッセージ。このエラーは、現在のユーザーが要求されたデータベースにアクセスするための権限が不十分であることを示します。
エラーについて
エラー メッセージ「アクセスが拒否されました」は、ユーザーが実行を試みていることを示しています。クエリには、データベースに接続したり、目的の操作を実行したりするために必要な権限がありません。この特定のケースでは、データベースへの接続を確立しようとしているユーザーは、ローカルホストから空の文字列 ('') として識別されます。
根本原因の特定
エラーのトラブルシューティングを行うには、ユーザー アカウントの設定と権限を調べることが重要です。 「show Grants」コマンドを使用すると、現在のユーザーに付与された権限を表示できます。提供された例では、次の付与が表示されます。
GRANT USAGE ON *.* TO ''@'localhost'
この出力は、localhost の空の文字列ユーザーにすべてのデータベースに対する USAGE 権限が付与されていることを示します。これにより、ユーザーは MySQL に接続できますが、データベースやテーブルを作成または操作する権限は付与されません。
問題の解決
エラーを解決するには、必要な権限を目的のユーザーに付与できます。ただし、現在ユーザー ID がないため、ユーザー ID を作成する必要があります。ただし、CREATE USER 操作を実行するには、必要な権限を持つユーザー アカウントを作成する必要があります。
ルート アカウントの使用
必要な権限があることを確認するには権限を持っている場合は、root アカウントを使用して MySQL への接続を試みることができます。示されている例では、root として接続しようとする最初の試みは失敗しました。 root としてサインインするには、MySQL コマンド ライン内ではなく、Bash シェルで次のコマンドを実行する必要があります。
mysql -u root -p
プロンプトが表示されたら、root パスワードを入力します。 root としてサインインしたら、必要な権限を持つ新しいユーザーの作成に進むことができます。
以上がMySQL アクセスが拒否されました:「ユーザー ''@'localhost' のアクセスが拒否されました」エラーのトラブルシューティングと解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。