怎么解決mysql不允許遠程連接的錯誤
方法/步驟
-
首先看報錯窗口。
-
經查閱,錯誤原因是:本地IP(xxx.xxx.xxx.xxx)沒有訪問遠程數據庫的權限。
於是下面開啟本地IP(xxx.xxx.xxx.xxx)對遠程mysql數據庫的訪問權限。
-
首先遠程連接進入服務器,在cms中輸入mysql -u root -p,然后回車,輸入密碼后回車進入mysql命令行。
-
輸入use mysql;
-
輸入select user,password,host from user;
可以看到host中只有localhost主機。我們需要將xxx.xxx.xxx.xxx也添加到這里才對。
-
添加方法如下:
輸入
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服務。
然后訪問速度就和本地一樣快啦。
-