MySQL 接続の問題: ユーザー 'root'@'localhost' のアクセスが拒否されました
指定したコードはデータベースへの接続に失敗します「ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: YES)」というメッセージを含む SQLException がスローされます。この問題は、指定されたユーザーがデータベースにアクセスするために必要な権限を持っていないことを示しています。
原因:
この例外は、次の理由で発生する可能性があります:
解決策:
この問題を解決するには、次の手順を試してください:
必要な権限を付与します: 次の SQL ステートメントを実行して、'localhost' の 'root' ユーザーにすべての権限を付与します:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;
%password% を「root」ユーザーの実際のパスワードに置き換えます。
例:
例外の処理中にデータベースの作成を試みるためにコードを少し変更します:
<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException { try { Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&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 サイトの他の関連記事を参照してください。