遠程連接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.查看雲服務器商是否配置安全組規則
其實出現這個錯誤的原因也不外乎以上幾個方面,相信按照上面的思路找出原因,定能將問題解決掉