ホームページ  >  記事  >  Java  >  MySQL データベースに接続しようとすると、「ユーザー \'root\'@\'localhost\' のアクセスが拒否されました」というエラーが表示されるのはなぜですか?

MySQL データベースに接続しようとすると、「ユーザー \'root\'@\'localhost\' のアクセスが拒否されました」というエラーが表示されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 00:27:28962ブラウズ

Why am I getting

MySQL 接続の問題: ユーザー 'root'@'localhost' のアクセスが拒否されました

指定したコードはデータベースへの接続に失敗します「ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: YES)」というメッセージを含む SQLException がスローされます。この問題は、指定されたユーザーがデータベースにアクセスするために必要な権限を持っていないことを示しています。

原因:

この例外は、次の理由で発生する可能性があります:

  • ユーザー名またはパスワードが間違っています
  • ユーザーの権限が不十分です
  • ファイアウォールがデータベース サーバーへのアクセスをブロックしています

解決策:

この問題を解決するには、次の手順を試してください:

  1. ユーザー名とパスワードを確認してください: ユーザー名とパスワードが DriverManager.getConnection に提供されていることを確認してください。 () は正しいです。
  2. 必要な権限を付与します: 次の SQL ステートメントを実行して、'localhost' の 'root' ユーザーにすべての権限を付与します:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;

    %password% を「root」ユーザーの実際のパスワードに置き換えます。

  3. ファイアウォール設定: システムのファイアウォールがデータベース サーバーへのアクセスをブロックしていないか確認します。 。その場合は、データベース サーバーが使用しているポート (通常はポート 3306) での接続を許可するようにファイアウォールを構成します。

例:

例外の処理中にデータベースの作成を試みるためにコードを少し変更します:

<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException {
    try {
        Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&amp;password=rootpassword");
        Statement s = (Statement) conn.createStatement();
        int result = s.executeUpdate("CREATE DATABASE databasename");
    } catch (Exception e) {
        e.printStackTrace();
    }
}</code>

ただし、同じ例外が発生します。この場合、「root」ユーザーがデータベースを作成するために必要な権限を持っていることを確認してください。次の SQL ステートメントを使用してこの権限を付与できます:

GRANT CREATE DATABASE ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

これらの手順に従うことで、データベースへの接続を正常に確立し、「アクセスが拒否されました」例外を回避できるはずです。

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

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