记录一下Linux下远程访问Mysql连接不上,报错The driver has not received any packets from the server.
问题所在
远程服务器已经提前安装好了MySQL,版本也是对应的。在ssh上可以正常进入MySQL数据库。但是其他地方无法连接上,例如navicat和IDE内部都发生报错。
排查
1. 首先排查了一下远程服务器上mysql服务状态是否处于正常运行状态
sudo service mysqld status
没有发生问题。
2. 检查了一下服务器安全组是否放行了对应端口。如3306、80等常用端口
检查安全组进入对应所选用的服务器控制台即可。(腾讯云、阿里云、华为云、AWS)都是类似的。
也没有发生问题。
3. 检查了linux中防火墙是否启用,是否放行了对应端口
Centos7默认使用的是firewalld作为防火墙,不是使用iptables,因此需要先关闭firewalld服务,或者直接使用默认的firewalld防火墙。
-
使用iptables需要先安装服务
yum install iptables-services
-
我们可以将其设置为开机启动
systemctl enable iptables.service
-
关闭firewalld防火墙
systemctl stop firewalld
systemctl mask firewalld
接下来就是关键点,我们需要放行对应的端口
- 放行
3306
端口:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
- 放行
443
端口:iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- 放行
80
端口:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
问题解决!!!
firewalld常用命令
-
查看firewalld防火墙状态
systemctl status firewalld.service
-
开启firewalld防火墙
systemctl start firewalld.service
-
关闭firewalld防火墙
systemctl stop firewalld.service
-
重启firewalld防火墙
systemctl restart firewalld.service
-
禁止开机启动firewalld防火墙
systemctl disable firewalld.service
-
设置开机启动firewalld防火墙
systemctl enable firewalld.service
-
开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
-
重新载入
firewall-cmd --reload
-
查看对应端口
firewall-cmd --zone=public --query-port=80/tcp
-
删除对应端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
__EOF__

本文链接:https://www.cnblogs.com/leedev-blog/p/17604156.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)