MySQL错误:Can\'t connect to MySQL server (10060) 解决方案
远程连接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
可以看到mysql已经设置允许远程连接
若root用户显示host为localhost 则需要授权 root 用户的所有权限并设置远程访问
- -- GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'%\'WITH GRANT OPTION; //任何远程主机都可以访问数据库
- -- FLUSH PRIVILEGES; //需要输入次命令使修改生效
- -- EXIT //退出
也可以通过修改表来实现远程:
- -- 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.查看云服务器商是否配置安全组规则
其实出现这个错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉