不十分なユーザー権限で MySQL にアクセスする: 「java.sql.SQLException: アクセスが拒否されました」に対処する
例外「java.sql.SQLException: アクセスが拒否されました」が発生しました。 Java 経由で MySQL データベースに接続中に SQLException: アクセスが拒否されました」というメッセージが表示され、イライラすることがあります。このエラーは通常、接続しようとしているユーザーにデータベースにアクセスするための適切な権限がないことを示します。
この場合、例外は次のコード スニペットから発生します。
<code class="java">Connection m_connection = DriverManager.getConnection("jdbc:mysql://localhost", "root", "root");</code>
コードは、 「root」ユーザーと「root」パスワードを使用して、ローカルホスト上で実行されている MySQL データベースへの接続を確立します。ただし、このエラーは、これらの資格情報がデータベースにアクセスするために必要な権限を持っていないことを示唆しています。
この問題を解決するには、接続しようとしているユーザーに適切な権限を付与する必要があります。 MySQL では、これは次のクエリを実行することで実現できます:
<code class="sql">GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;</code>
"%password%" を実際の MySQL パスワードに置き換えることを忘れないでください。
このクエリを実行すると、 「root」ユーザーと指定されたパスワードを使用して、MySQL データベースに正常に接続できるはずです。
または、2 番目のコード スニペットでは、
<code class="java">Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); </code>
別のアプローチを使用しています。接続 URL 自体にユーザーとパスワードを含めます。このアプローチは便利な場合もありますが、パスワードが平文で公開されるため、一般に安全性が低くなります。
データベース認証情報をデータベースに直接埋め込むのではなく、構成ファイルまたはその他の安全なメカニズムを使用して保存することを常にお勧めします。コードまたは接続 URL。
以上がMySQL への接続時に「java.sql.SQLException: アクセスが拒否されました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。