MySQL 連線問題:使用者'root'@'localhost' 存取被拒絕
您提供的程式碼無法連線到資料庫並拋出SQLException 並顯示訊息「使用者'root'@'localhost'存取被拒絕(使用密碼:YES)」。此問題表示指定的使用者沒有存取資料庫所需的權限。
原因:
出現此異常的原因如下:
解決方案:
要解決此問題,請嘗試以下步驟:
授予必要的權限: 執行下列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中文網其他相關文章!