由於上一篇文章我就已經給MySQL新建了一新用戶,且賦予了遠程鏈接數據庫的全部權限(GRANT ALL PRIVILEGES ON *.* TO 'newuser' @ '%' IDENTIFIED BY 'newpass' WITH GRANT OPTION;)html
且錯誤是 Cant't connect to MySQL.... 而不是1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server ,因此先排除權限問題,先從端口查起。mysql
shell > netstat -apn 查看全部端口信息,以下圖能夠看出mysqld服務Listen端口號爲3306,固然也能夠在MySQL中 mysql > show variables like 'port';sql
shell > netstat -apn | grep 3306 查詢3306端口占用狀況shell
在網上查到的解決方法最多的就是說,/etc/my.cn配置文件中配置了 bind_address=127.0.0.1數據庫
但當我vim /etc/my.cnf打開配置文件時裏面十分乾淨,沒有其餘多餘設置,後面幾條是我後來添加的。vim
因此也排除配置文件問題。centos
確實,我也感受是防火牆問題,感受愈來愈接近了。由於在本機上telnet 168.x.x.x 3306 提示鏈接失敗。(telnet默認是沒有的須要進行安裝 #yum install telnet 安裝源,#yum install telnet-server安裝服務)服務器
CentOS7的默認防火牆爲firewall,且默認是不打開的。tcp
shell > systemctl start firewalld 啓動friewall網站
shell > systemctl status firewalld 查看firewall啓動狀況
shell > firewall-cmd --zone=public --add-port=3306/tcp --permanent 開啓3306端口
而後重啓 firewalld #firewall-cmd --reload
使用 # firewall-cmd --query-port=3306/tcp 檢查3306端口是否已經開啓,若是顯示yes,則表示防火牆已開啓該端口。
(固然也能夠關閉centos7的默認防火牆 #systemctl stop firewalld 和禁用#systemctl mask firewalld。而後使用iptables防火牆,centos7默認是沒有安裝iptables的,一樣#yum install iptables #yum install iptables-services兩步進行安裝便可。這有一博友的詳細iptables安裝配置和講解,我這就直接借用了。https://www.cnblogs.com/anne32184/p/5961806.html)
而後回到window 再進行MySQL遠程鏈接時(mysql -h 168.x.x.x -u root -p),報一樣的錯誤,這讓我非常無語,而後又試了各類方法,逛各類博客網站,連mysql版本不一樣,端口爲tcp6等不着邊的都去想了,但仍是無解。(v _ v)
後來呀,偶然間想到阿里雲,阿里雲是否是也有端口配置? 而後網上一查,可不其然,特別是雲服務器,就算在服務器的防火牆啓動了端口但在雲控制檯的實例端口沒設置也是沒法訪問的,在此我就直接分享百度經驗裏的了
https://jingyan.baidu.com/article/03b2f78c31bdea5ea237ae88.html
固然,看到這個界面我就安心了。
轉載自:https://www.cnblogs.com/lightsrs/p/7842299.html