ホームページ > Java > &#&チュートリアル > MySQL への接続時に「java.sql.SQLException: アクセスが拒否されました」エラーが発生するのはなぜですか?

MySQL への接続時に「java.sql.SQLException: アクセスが拒否されました」エラーが発生するのはなぜですか?

DDD
リリース: 2024-10-25 03:19:02
オリジナル
398 人が閲覧しました

Why Am I Getting a

不十分なユーザー権限で 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート