本地navicat連接遠程數據10038

錯誤信息: 2003-Can’t connect to MySQL server on ‘xxxxx’(10038)

1.在windows下,cmd 輸入

telnet 192.168.xx.xxx 3306
其中ip是虛擬機的ip.如果連接失敗

2.在虛擬機下輸入

netstat -anp| grep 3306
看結果,如果結果中3306前面的ip不是0.0.0.0

要修改
vi /etc/mysql/my.conf(5.5)
vi /etc/mysql/mysql.conf.d/mysqld.cnf(5.7)
將屬性修改
bind-address = 127.0.0.1 改爲 bind-address = 0.0.0.0
上面的意思是改爲監聽所有地址
mysql的賬號默認不允許從遠程登錄,只允許localhost訪問。
- 方法一:
進入mysql後,需要更改 “mysql” 數據庫裏的 “user”(遠程數據庫的名稱) 表裏的”host” 項,把”localhost”改稱”%” (表示所有地址IP都可以訪問mysql服務器)。這樣你的mysql就可以遠程操作了。
update user set host = ‘%’ where user =’root’;
但是這樣不安全。
- 方法二:授權
grant select,insert,update,delete on . to root@”%” Identified by “password”;
只賦給地址IP上的root 賬號 select,insert,update,delete 權限 ,這樣比較安全。
將‘%’換成指定ip表示只允許給ip上的root用戶訪問:例如:
grant select,insert,update,delete on . to root@”192.168.1.10” Identified by “password”;
將賦予權限改成all時表示賦予該ip上root用戶所有權限 例:
grant all on . to root@”192.168.1.10” Identified by “password”;(這樣並不安全)

修改完成之後重啓mysql服務器: sudo service mysql restart

參考文章:http://www.cnblogs.com/dplearning/p/5688654.html

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