驅動類別名稱
- MySQL 官方:
com.mysql.cj.jdbc.Driver(8.0+ 推薦)
- 舊版/第三方:
com.mysql.jdbc.Driver、org.gjt.mm.mysql.Driver
JDBC URL 格式
jdbc:mysql://[host:port]/[database][?param1=value1¶m2=value2...]
常用參數對照表
| 參數 | 說明 | 預設 | 最低版本 |
user | 資料庫用戶名 | — | 所有 |
password | 用戶密碼 | — | 所有 |
useUnicode | 是否用 Unicode 字元集(配合 characterEncoding) | false | 1.1g |
characterEncoding | 字元編碼(如 gbk, utf8) | false | 1.1g |
autoReconnect | 連線中斷自動重連 | false | 1.1 |
autoReconnectForPools | 連線池專用重連策略 | false | 3.1.3 |
failOverReadOnly | 重連成功後是否唯讀 | true | 3.0.12 |
maxReconnects | 重試次數 | 3 | 1.1 |
initialTimeout | 重試間隔秒數 | 2 | 1.1 |
connectTimeout | 建立 socket 連線逾時毫秒(0=永不) | 0 | 3.0.1 |
socketTimeout | socket 讀寫逾時毫秒(0=永不) | 0 | 3.0.1 |
中文環境推薦 URL
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false
連線池環境建議參數
autoReconnect=true&failOverReadOnly=false
XML 配置檔轉義(Tomcat server.xml 等)
& → &
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false
避坑提醒
useUnicode=true 配合 characterEncoding 使用,否則無效。
autoReconnect=true 在事務中可能導致資料不一致,連線池環境下建議配合 autoReconnectForPools=true。
- 生產環境建議顯式設定
connectTimeout/socketTimeout 避免永久阻塞。
- MySQL 8.0+ 強制 SSL,若不需 SSL 加
useSSL=false 或配置信任憑證。