首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux MySQL JDBC 連線權限設定:解決 "Server configuration denies access" 錯誤

     編輯:MySQL 資料庫相關知識

錯誤現象

執行 Java 程式連接 MySQL 時拋出:Server configuration denies access to data source

根本原因

MySQL 預設只允許本地主機 (localhost) 連線,遠端主機或特定使用者需明確授權。

解決步驟

  1. 以 root 登入 MySQL:mysql -u root -p
  2. 授權指令:
GRANT ALL PRIVILEGES ON 資料庫名.* 
TO '使用者名'@'客戶端主機' 
IDENTIFIED BY '密碼';

參數說明與實例

佔位符說明本文範例值
資料庫名目標資料庫test
使用者名MySQL 帳號root
客戶端主機Java 程式執行機器 IP/主機名localhost (本機)
密碼該帳號密碼'' (空密碼)

實際執行範例

-- 本機 root 空密碼完全授權
GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost' IDENTIFIED BY '';

-- 遠端應用伺服器 192.168.1.100 使用 app_user 連線
GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'192.168.1.100' IDENTIFIED BY 'StrongPass123';

-- 允許任意主機 (不建議生產環境使用)
GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'%' IDENTIFIED BY 'StrongPass123';

授權生效

FLUSH PRIVILEGES;

安全最佳實踐

  • 遵循最小權限原則:僅授予必要資料庫、必要權限 (SELECT/INSERT/UPDATE/DELETE)。
  • 避免使用 root@'%' 或無密碼帳號。
  • 生產環境強制啟用 SSL 連線:REQUIRE SSL。
  • 定期審核 mysql.user 表,移除無用帳號。
JDBC 連線字串範例: jdbc:mysql://192.168.1.50:3306/mydb?user=app_user&password=StrongPass123&useSSL=true&verifyServerCertificate=false
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved