在CentOS7安裝mysql中已經完成在CentOS7中安裝好了mysql,且建立好了相應的用戶,並設置對應的用戶密碼,如今嘗試經過命令行遠程命令訪問mysql。mysql
mysql --host=xxx.xxx.200.58 --port=3306 -u myuser -p Enter password: ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.200.58' (61)
看到這個現象,能夠斷定爲CentOS的防火牆擋住了。sql
# 查看firewall-cmd所知道是全部服務,這裏主要關注mysql firewall-cmd --get-services # 把mysql服務暴露在外面,主要就是開放3306端口 firewall-cmd --zone=public --add-service=mysql --permanent # 重啓firewall firewall-cmd --reload
注意:上面是比較粗放的權限控制,由於在局域網裏面,更加細粒度的端口開放,應該參考下面的命令。數據庫
# 防火牆更加細粒度的權限開放 firewall-cmd --add-rich-rule 'rule family="ipv4" source address="$your_IP_or_IP_Range" service name="mysql" accept' --permanent
mysql --host=xxx.xxx.200.58 --port=3306 -u myuser -p Enter password: ERROR 1130 (HY000): Host 'xxx.xxx.200.58' is not allowed to connect to this MySQL server
臨時設置用戶永許任何ip均可以訪問bash
mysql> GRANT ALL ON mydb.* TO 'myuser'@'%'; Query OK, 0 rows affected (0.07 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)
這個問題是Mysql要設置指定遠程ip可以訪問。this