遠端連接Mysql伺服器的資料庫,錯誤代碼是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server
猜想兩種原因:一個是因為MySQL的限制,一個是防火牆的限制。
1. 解決防火牆限制:
在MySQL服務主機上將防火牆關閉或在防火牆高級設定裡面加入出入站規則,加上MySQL的端口,允許透過MySQL的端口進行存取主機。
修改防火牆設定 (系統不一樣,防火牆設定檔不一樣) 部落客的是centos7下安裝的iptables
$ vi /etc/sysconfig/iptables
開啟後在設定檔中增加一行
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
然後儲存並退出
重啟防火牆(centos7)
systemctlrestart iptables.service
2.解決MySQL的限制,在MySQL服務主機上執行下列sql
在本機登入mysql後,更改「mysql」 資料庫裡的「user」 表裡的「host」 項,從」localhost」改稱'%'即可
登入mysql
mysql -u root -p
選擇mysql資料庫
mysql;use mysql;
查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)
mysql;select 'host' from user where user='root';
修改host值(以通配符%的內容增加主機/IP位址),當然也可以直接增加IP位址
如果這步驟出錯”ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'” 由說明該記錄有了,跳過這步
mysql;update user set host = '%' where user ='root';
更改權限(root為帳號名,%為主機名稱(任意主機),525099302為密碼密碼可以自行選擇)
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "525099302";
刷新權限,mysql直接生效
#flush privileges;
重起mysql服務即可完成。
#以上是如何解決Mysql限制連線報1130的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!