ホームページ >データベース >mysql チュートリアル >ユーザー \'test2\'@\'localhost\' に対して MySQL の「アクセスが拒否されました」エラーが発生するのはなぜですか?

ユーザー \'test2\'@\'localhost\' に対して MySQL の「アクセスが拒否されました」エラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 05:46:14882ブラウズ

Why am I Getting a MySQL

MySQL アクセス拒否エラー: 'test2'@'localhost'

エラー「SQLSTATE[HY000] [1045] アクセスが拒否されました」が発生した場合ユーザー 'test2'@'localhost'" の場合、ユーザーとして MySQL データベースへの接続が試行されたことを示しますホスト 'localhost' からの 'test2' は、資格情報または承認の問題により失敗しました。

根本的な原因

このエラーは、いくつかの理由で発生する可能性があります:

  • 間違った資格情報: ユーザー名が正しいことを確認してくださいアプリケーション構成 (app.php) で指定された「test2」とパスワード「computer」は両方とも有効です。
  • ユーザーが作成されていません: 「test2」という名前の MySQL ユーザーが存在することを確認します。データベース上に存在します。これを確認するには、特権ユーザー (root など) として次のクエリを実行します。

    SELECT user, host FROM mysql.user WHERE user = 'test2';

    クエリが行を返さない場合、ユーザーは存在しません。

  • ユーザー アクセス制限: ユーザーが存在する場合でも、データベースに接続したり、指定されたファイルにアクセスしたりするための十分な権限がない可能性があります。データベース (ジョブ)。ジョブ データベースに対してユーザーに付与されている権限を確認してください。

トラブルシューティングの手順

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

  1. 資格情報の確認: ユーザー名とパスワードを再入力して、正しいことを確認してください。
  2. データベース ユーザーの作成 (見つからない場合): 'test2' ユーザーが見つからない場合は、次のクエリを使用して作成します:

    CREATE USER 'test2'@'localhost' IDENTIFIED BY 'computer';
  3. 権限の付与: 「test2」ユーザーは、ジョブ データベースにアクセスするために必要な権限を持っています。特権ユーザーとして次のクエリを実行します:

    GRANT SELECT, UPDATE, INSERT, DELETE ON jobs.* TO 'test2'@'localhost';
  4. 権限のフラッシュ: 権限に変更を加えた後、変更が有効になるようにフラッシュします:

    FLUSH PRIVILEGES;

追加考慮事項

  • 接続文字列のホスト値を確認してください。これは、MySQL サーバーが実行されているホストと一致する必要があります。この場合、同じマシン上のデータベースに接続している場合は、「localhost」が正しいです。
  • 接続をブロックしている可能性のあるファイアウォールまたはウイルス対策ソフトウェアを無効にしてください。
  • ホスト名の変更を検討してください。データベース ユーザーを '%' に設定すると、任意のホストからの接続が許可されます。ただし、これは特定のホスト名を指定するよりも安全性が低くなります。

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

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