小编在学习2024版黑马的微服务课程时,用idea连接Linux中的Mysql数据库,报错:
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.
解决方法一:
我就尝试各种办法,很多人说出问题是在url配置中useSSL=true参数,MySQL在高版本需要指明是否进行SSL连接,MySQL5是不需要这个参数的。解决方案是:useSSL=false。
我在修改之后,重新编译运行发现还是不行,那就不是解决版本的问题
解决方法二:
在我的多方尝试与努力下我发现在自己Linux本机中使用dps(docker ps),可以查到我的mysql确实时运行的状态
如果没有查到mysql在运行可以手动开启试着mysql: docker start mysql
并可以设置好开机自启动mysql:docker update --restart=always mysql
我尝试在Linux中连接mysql发现可以连接,这就说明,mysql时没有问题的,于是我想到了Linux的防火墙是不是开了下面时关于防火墙的命令
在 Linux 系统中,防火墙是用来控制进出网络流量的安全系统。根据不同的 Linux 发行版和版本,关闭防火墙的命令可能会有所不同。以下是一些常见的方法来关闭 Linux 系统中的防火墙。
CentOS 7 之前的版本
对于 CentOS 7 之前的版本,可以使用 iptables 相关命令来管理防火墙。以下是一些基本的命令:
-
查看防火墙状态: service iptables status
-
关闭防火墙: service iptables stop
-
开启防火墙: service iptables start
-
重启防火墙: service iptables restart
-
永久关闭防火墙: chkconfig iptables off
-
永久开启防火墙: chkconfig iptables on
CentOS 7 及之后的版本
CentOS 7 及之后的版本使用 firewalld 作为防火墙管理工具。以下是使用 systemctl 命令来管理 firewalld 的方法:
-
查看防火墙状态: systemctl status firewalld.service
-
启动防火墙: systemctl start firewalld.service
-
关闭防火墙: systemctl stop firewalld.service
-
重启防火墙: systemctl restart firewalld.service
-
设置开机启动防火墙: systemctl enable firewalld.service
-
禁用开机启动防火墙: systemctl disable firewalld.service
经过查看确实发现防火墙没有关闭,所以我们本机没有办法访问Linxu,才产生连接不到mysql的情况,就使用systemctl stop firewalld.service关闭防火墙,然后再次查看防火墙状态,显示已经关闭
再次进入idea连接就连接成功了
制作不易,如有帮到各位就留个小小的赞吧。