远程连接mysql数据库的时候显示Can't connect to MySQL server (10060) 如下图所示
可以从以下几个方面入手,找出错误的原因:
1.网络问题
网络不通时会导致这个问题 检查下是不是能ping通
2.mysql账户设置
mysql账户是否不允许远程连接
-- mysql -u root -p
-- show databases;
-- use mysql;
-- select host,user from user
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
- xxx 39 connect server 2002xxx 39 connect server localhost 39 connect server 39 connect through server 39 connect centos server connection xxx to connect mysql localhost 39 connect mysqld 39 connect through newconnectionerror proxyerror 39 connect 39 connected transport address mysql 39 connect through