首頁 >Java >java教程 >為什麼我在連接 MySQL 時收到「java.sql.SQLException: Access Denied」錯誤?

為什麼我在連接 MySQL 時收到「java.sql.SQLException: Access Denied」錯誤?

DDD
DDD原創
2024-10-25 03:19:02394瀏覽

Why Am I Getting a

使用者權限不足存取MySQL:解決「java.sql.SQLException: Access Denied」

遇到例外「java.sql.SQLException : Access Denied」

透過Java 連線到MySQL 資料庫時出現「SQLException:存取被拒絕」可能會令人沮喪。此錯誤通常表示嘗試連線的使用者缺乏存取資料庫的適當權限。
<code class="java">Connection m_connection = DriverManager.getConnection("jdbc:mysql://localhost", "root", "root");</code>

在您的情況下,異常是由以下程式碼片段引起的:

程式碼嘗試使用「root」使用者和「root」密碼建立與本地主機上執行的MySQL資料庫的連線。但是,該錯誤表示這些憑證沒有存取資料庫所需的權限。
<code class="sql">GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;</code>

要解決此問題,您必須向嘗試連線的使用者授予適當的權限。在 MySQL 中,可以透過執行以下查詢來實現:

記得將「%password%」替換為您的實際 MySQL 密碼。

執行此查詢後,您應該能夠使用「root」使用者和指定的密碼成功連線到 MySQL 資料庫。
<code class="java">Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); </code>

或者,在您的第二個程式碼片段中:

您正在使用不同的方法將使用者和密碼包含在連線 URL 本身中。雖然這種方法很方便,但通常不太安全,因為它以純文字形式公開密碼。 始終建議使用設定檔或其他安全機制來儲存資料庫憑證,而不是將它們直接嵌入到您的程式碼或連接 URL。

以上是為什麼我在連接 MySQL 時收到「java.sql.SQLException: Access Denied」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn