最近使用Navicat for MySQl訪問遠程mysql數據庫,出現報錯,顯示「1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server「。解決辦法以下:html
首先看報錯窗口。mysql
經查閱,錯誤緣由是:本地IP(xxx.xxx.xxx.xxx)沒有訪問遠程數據庫的權限。sql
因而下面開啓本地IP(xxx.xxx.xxx.xxx)對遠程mysql數據庫的訪問權限。數據庫
首先遠程鏈接進入服務器,在cms中輸入mysql -u root -p,而後回車,輸入密碼後回車進入mysql命令行。服務器
輸入use mysql;ide
輸入select user,password,host from user;this
能夠看到host中只有localhost主機。咱們須要將xxx.xxx.xxx.xxx也添加到這裏纔對。命令行
添加方法以下:3d
輸入server
grant all privileges on *.* to root@"xxx.xxx.xxx.xxx" identified by "密碼";
這至關因而給IP-xxx.xxx.xxx.xxx賦予了全部的權限,包括遠程訪問權限。
而後再輸入
flush privileges;
這至關因而從新加載一下mysql權限,這一步必須有。
再次輸入select user,password,host from user;
能夠看到host中已經有了新加的IP。
如今再次用Navicat for MySQl訪問遠程mysql數據庫,已經能正常打開了。
問題解決。
不過還有一個問題,發現雙擊打開某張表的時候很慢,至少要3秒。
緣由是:
當遠程訪問mysql時, mysql會解析域名, 因此會致使訪問速度很慢, 會有2,3秒延時!
解決辦法:
修改mysql安裝目錄下的my.ini,加上下面這個配置可解決此問題。在[mysqld]下加入:skip-name-resolve
保存退出後重啓mysql服務。
而後訪問速度就和本地同樣快啦。