如何解決Mysql限制連線報1130的問題

一个新手
發布: 2017-09-09 14:27:20
原創
1450 人瀏覽過

遠端連接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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!