解決遠程連接mysql錯誤1130代碼的方法

今天在用遠程連接Mysql服務器的數據庫,不管怎麼弄都是連接不到,錯誤代碼是1130ERROR 1130: Host192.168.2.159 is not allowed to connect to this MySQL server 

猜想是無法給遠程連接的用戶權限問題。結果這樣子操作mysql庫,即可解決。在本機登入mysql後,更改 “mysql” 數據庫裏的 “user” 表裏的 “host” 項,從”localhost”改稱'%'。。

mysql-u root -p

mysql>usemysql;

mysql>select'host' from user where user='root';

mysql>updateuser set host = '%' where user ='root';

mysql>flushprivileges;

mysql>select'host'   from user where user='root';

第一句是以權限用戶root登錄

第二句:選擇mysql

第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)

第四句:修改host值(以通配符%的內容增加主機/IP地址),當然也可以直接增加IP地址

第五句:刷新MySQL的系統權限相關表

第六句:再重新查看user表時,有修改。。

重起mysql服務即可完成。

=====================================================

    本機的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進行訪問,發現可以正常訪問了。

?

1

2

3

4

grantall

on *.*

to root identified by'123456'

withgrantoption;

如果訪問還有問題,可以執行一下flush privileges;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章