首頁 > Java > java教程 > 主體

為什麼我在嘗試連接到 MySQL 資料庫時收到'用戶\'root\'@\'localhost\'\ ​​的存取被拒絕”錯誤?

Linda Hamilton
發布: 2024-10-26 00:27:28
原創
970 人瀏覽過

Why am I getting

MySQL 連線問題:使用者'root'@'localhost' 存取被拒絕

您提供的程式碼無法連線到資料庫並拋出SQLException 並顯示訊息「使用者'root'@'localhost'存取被拒絕(使用密碼:YES)」。此問題表示指定的使用者沒有存取資料庫所需的權限。

原因:

出現此異常的原因如下:

  • 使用者名稱或密碼錯誤
  • 使用者不足
  • 防火牆阻止訪問數據庫服務器

解決方案:

要解決此問題,請嘗試以下步驟:

  1. 檢查您的使用者名稱和密碼:確保提供給DriverManager.getConnection 的使用者名稱和密碼() 正確。
  2. 授予必要的權限: 執行下列SQL 語句將所有權限授予'localhost' 上的'root' 使用者:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;
    登入後複製

    將%password % 替換為「root」使用者的實際密碼。

  3. 防火牆設定:檢查系統上的防火牆是否阻止存取資料庫伺服器。如果是這樣,請將防火牆配置為允許資料庫伺服器正在使用的連接埠(通常是連接埠 3306)上的連線。

範例:

您已修改您的程式碼稍微嘗試在處理異常時建立資料庫:

<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException {
    try {
        Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&amp;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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!