IDEA連接MySQL失敗-[08S01] Communications link failure


IDEA連接MySQL失敗-[08S01] Communications link failure

一、問題現狀描述

使用IDEA啟動maven項目,報錯連接MySQL數據庫失敗,嘗試用IDEA的database插件,連接本地MySQL庫(Windows10本機搭建)

image-20211027234434709

報錯結果如下:

[08S01] Communications link failure

 The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

image-20211027233621368

使用Navicat等工具可以連接成功

image-20211027235044997

1. 使用命令窗口可以連接成功

2. 服務端已設置用戶可以遠程訪問

image-20211027235507745

二、問題排查

MySQL 5.7除了配置服務端配置,還要配置my.cnf文件。

1)/etc//my.conf

2)E:\PATS\Tools\mysql-5.7.34-winx64\my.ini

即一般linux 上都放在 /etc/my.cnf ,window 上安裝都是默認可能按照上面的路徑還是沒找到,Windows上可以登錄到mysql中 使用 show variables like '%data%' 先找到data存放路徑,一般my.ini 在 data文件的上一級。

2.1 Linux系統配置

 # my.cnf中有選項bind-address=127.0.0.1,是說mysql server監聽的是本地發來的請求
 #如果是任意主機都可以請求,則寫為0.0.0.0,但是這樣又不太安全。
 # 監聽某ip,指定此ip地址即可,但是要保證mysql的user中有允許此ip訪問,否則不能對數據庫操作
 
 bind-address=0.0.0.0

這樣配置可實現遠程訪問,並且IDEA也可直接訪問

2.2 Window系統配置

bind-address=127.0.0.1注釋掉,默認就是bind-address=0.0.0.0

my.cnf中有選項bind-address=127.0.0.1,是說mysql server監聽的是本地發來的請求,如果是任意主機都可以請求,則寫為0.0.0.0,但是這樣又不太安全。監聽某ip,指定此ip地址即可,但是要保證mysql的user中有允許此ip訪問,否則不能對數據庫操作。那么是否可以在配置里只規定幾個ip呢?

簡單直接回答:不可能(詳情參考

 [mysqld]
 # 設置3306端口
 port=3306
 # 設置mysql的安裝目錄
 basedir=E:\PATS\Tools\mysql-5.7.34-winx64\mydata
 # 設置mysql數據庫的數據的存放目錄
 datadir=E:\PATS\Tools\mysql-5.7.34-winx64\mydata\data
 ## 允許最大連接數
 max_connections=1000
 ## 允許連接失敗的次數。
 max_connect_errors=100
 ## 服務端使用的字符集默認為utf8mb4
 character-set-server=utf8mb4
 ## 創建新表時將使用的默認存儲引擎
 default-storage-engine=INNODB
 ## 默認使用“mysql_native_password”插件認證
 ##mysql_native_password
 #default_authentication_plugin=mysql_native_password
 ##sql_mode設置
 ##查詢 select @@sql_mode,去除ONLY_FULL_GROUP_BY
 sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
 #注釋掉允許任意遠程連接
 # 放開注釋:
 # bind-address=127.0.0.1 本地連接
 # bind-address=xxx.xxx.xxx.xxx 指定IP連接
 bind-address=127.0.0.1
 [mysql]
 ## 設置mysql客戶端默認字符集
 default-character-set=utf8mb4
 [client]
 ## 設置mysql客戶端連接服務端時默認使用的端口
 port=3306
 default-character-set=utf8mb4
 

2.3 bind-address本地設置

bind-address設置為127.0.0.1本地連接后,IDEA就可以正常啟動maven項目,database插件也可正常連接MySQL

image-20211028002206211


以上,請參考!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM