解決遠程鏈接mysql錯誤1130代碼的方法
今天在用遠程鏈接Mysql服務器的數據庫,無論怎麼弄都是鏈接不到,錯誤代碼是1130,ERROR 1130: Host 192.168.2.159 is not allowed to connect to this MySQL server
猜測是沒法給遠程鏈接的用戶權限問題。結果這樣子操做mysql庫,便可解決。在本機登入mysql後,更改 「mysql」 數據庫裏的 「user」 表裏的 「host」 項,從」localhost」改稱'%'。。
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
第一句是以權限用戶root登陸
第二句:選擇mysql庫
第三句:查看mysql庫中的user表的host值(便可進行鏈接訪問的主機/IP名稱)
第四句:修改host值(以通配符%的內容增長主機/IP地址),固然也能夠直接增長IP地址
第五句:刷新MySQL的系統權限相關表
第六句:再從新查看user表時,有修改。。
重起mysql服務便可完成。 mysql
============================================================== sql
本機的mysql數據庫中有兩條user='root'的記錄,將其中一條host='localhost'的host修改成'%'後,雖然能夠經過遠程訪問數據庫了,可是使用localhost或者127.0.0.1又沒法訪問數據庫了。 數據庫
通過一番折騰,發現能夠經過建立用戶的方法來解決這個問題。不須要修改user表中的任何數據,在本地用root登錄mysql後,執行下面的語句,建立用戶名爲'root',密碼爲'123456'的用戶。執行完之後,查看user表,發現新增了一條host='%',user='root'的記錄,而且各項權限與其它'root'同樣,再次使用192.168.1.13進行訪問,發現能夠正常訪問了。 服務器
grant all
on *.*
to root identified by '123456'
with grant option;
若是訪問還有問題,能夠執行一下flush privileges; ide