背景介紹
最近在使用Idea進行Java Web開發時,遇到了一個奇怪的問題,無法通過JDBC連接MySQL數據庫。由于之前在Eclipse中調試時沒有遇到過這個問題,因此一度困擾了我很長時間。
問題分析
我的本地MySQL服務器端口號是3306,用戶名是root,密碼為空,在Idea的Database工具窗口中連接正常,但是在Java代碼中使用JDBC連接時,總是會報錯“java.net.ConnectException: Connection refused”。經過一番調試發現,問題出在數據源配置上。
原因分析
初步懷疑是因為Idea與Eclipse的配置不同引起的問題。然而,在對比了兩個開發工具的配置后,發現它們的數據源配置是一致的。于是,我又檢查了本地MySQL服務器的配置信息,發現MySQL服務器的防火墻開啟了,因此需要手動添加規則來允許3306端口的通信。
解決方案
在Windows操作系統上,可以通過控制面板->Windows Defender防火墻->高級設置->入站規則->新建規則來添加MySQL的入站規則。設置如下:
- 選擇端口類型
- 點擊下一步
- 選擇TCP和指定本地端口
- 填寫3306端口
- 默認選擇“允許連接”
- 按需勾選需要應用規則的程序
- 保存設置
添加規則后,再次測試JDBC連接,發現問題已經得到了解決。
總結
以上就是解決Idea用JDBC連接不上MySQL的方法,總的來說,問題的原因是MySQL服務器的防火墻阻攔了JDBC請求,解決方案就是添加規則允許3306端口的入站通信。