2002 - Can't connect to server on '54.xxx.xxx.xxx' (36)

发布时间 2023-12-21 15:24:19作者: Lafite-1820

远程连接mysql数据库的时候显示Can't connect to MySQL server (10060) 如下图所示
image

可以从以下几个方面入手,找出错误的原因:

1.网络问题

网络不通时会导致这个问题 检查下是不是能ping通
image

2.mysql账户设置

mysql账户是否不允许远程连接

--  mysql -u root -p

--  show databases;

--  use mysql;
 
--  select host,user from user

image

1,可以看到mysql已经设置允许远程连接

若root用户显示host为localhost 则需要授权 root 用户的所有权限并设置远程访问

-- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;     //任何远程主机都可以访问数据库  
 
-- FLUSH PRIVILEGES;    //需要输入次命令使修改生效  
 
-- EXIT    //退出 

2,也可以通过修改表来实现远程:

-- use mysql;  
 
-- update user set host = '%' where user = 'root';  
 
-- select host, user from user; 

3.防火墙端口未开放

root@iZ2zee2l6djknfZ ~]# firewall-cmd --list-ports
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 8001/tcp 8001/udp
[root@iZ2zee2l6djknfZ ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@iZ2zee2l6djknfZ ~]# firewall-cmd --reload
success
[root@iZ2zee2l6djknfZ ~]# firewall-cmd --list-port
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 8001/tcp 8001/udp 3306/tcp

可以看出mysql3306端口没有开放 此处开放 然后刷新就可以了

其他防火墙命令

#centos7查看防火墙所有信息
firewall-cmd --list-all

#centos7查看防火墙开放的端口信息
firewall-cmd --list-ports

#新增一个开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#说明:
#–zone #作用域
#–add-port=80/tcp #添加端口,格式为:端口/通讯协议
#–permanent 永久生效,没有此参数重启后失效
 
#新增多个端口:
firewall-cmd --zone=public --add-port=80-90/tcp --permanent

#删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent #重新加载firewall-cmd --reload

#查看本机已经启用的监听端口centos7以下使用netstat -ant,7使用ss
ss -ant

#centos7启动防火墙
systemctl start firewalld.service

#centos7停止防火墙/关闭防火墙
systemctl stop firewalld.service

#centos7重启防火墙
systemctl restart firewalld.service
 
 
#设置开机启用防火墙
systemctl enable firewalld.service

#设置开机不启动防火墙
systemctl disable firewalld.service

4.查看云服务器商是否配置安全组规则

其实出现这个错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉

活着就要做有意义的事,最有意义的事就是好好活。

来源:https://www.cnblogs.com/zhangxiaoxia/p/13043508.html