CentOS7中遠程訪問mysql問題

問題

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

# 查看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

Mysql8

臨時設置用戶永許任何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

參考

相關文章
相關標籤/搜索