MyEclipse 連 MySQL 失敗通常歸結為兩類:IDE 配置錯誤或MySQL 權限/網路設定。以下分場景排查。
現象:DB Browser 新建 MySQL 連線,填入 host/port/db/user/pass,點 Finish 報「Communications link failure」或「Access denied」,但 mysql -u user -p 正常。
排查:
user 表:SELECT User, Host FROM mysql.user;root@localhost,則遠程帳號不存在。root(或建立 'user'@'%'),即可連線。root@localhost。現象:Tomcat 啟動專案報 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。
誤區:以為是專案缺 JAR,實際上之前專案正常,突然失效。
真相:錯誤堆疊顯示 org.apache.catalina.loader.WebappClassLoader.loadClass,是 Tomcat 8080 埠被佔用/未正常重啟 導致類載入器異常。
解決:netstat -ano | findstr 8080 → taskkill /PID xxx /F → 重啟 Tomcat 即可。
# 正確範例
jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
# 常見錯誤
jdbc:mysql://localhost:3306/dbname -- 缺參數導致時區/SSL 警告
jdbc:mysql://127.0.0.1/dbname -- 缺 port
mysql-connector-java 8.0.x(類名 com.mysql.cj.jdbc.Driver)。5.1.x(類名 com.mysql.jdbc.Driver),別混用。MySQL 8.0 預設 caching_sha2_password,舊驅動不支援。
解決:ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'pass'; 或升級驅動到 8.0.13+。
| 症狀 | 優先檢查 |
|---|---|
| Access denied | mysql.user Host 欄位、密碼、權限 |
| Communications link failure | 防火牆、bind-address、skip-name-resolve |
| ClassNotFoundException | Tomcat 端口衝突、WEB-INF/lib 驅動 JAR |
| Public Key Retrieval is not allowed | URL 加 allowPublicKeyRetrieval=true 或改 native_password |
| Time zone | URL 加 serverTimezone=Asia/Shanghai |
依清單逐項排查,90% 問題 5 分鐘內解決。