mysql数据库提示本地无法连接远程服务器(Host is not allowed to connect to this MySQL server)解决办法
問題描述:
1、遠程服務器安裝了mysql服務并且啟動成功,在本地可以進行自由的訪問和更新等操作
2、服務器已開通了遠程訪問服務器3306端口的權限并且通過netstat -ltnp命令查看3306處于監聽過程中
3、遠程通過工具鏈接該mysql數據庫會報Host ‘xxx.xxx.xxx.xxx’(本地ip) is not allowed to connect to this MySQL server 的錯誤
解決辦法:
1、遠程鏈接服務器,在服務器內mysql系統目錄下的/bin文件下執行./mysql -u root -p;輸入密碼登入mysql;
2、在mysql中執行use mysql命令,進入系統數據庫
3、在mysql數據庫中執行下面的命令;如果返回結果如下圖:
select host from user where user = 'root'
該結果表示是由于當前的root用戶限制在當前的內網ip內訪問的,需要修改他的訪問域。
4、在mysql數據庫中執行如下命令:
update user set host = '%' where user = 'root';
必須再執行flush privileges,否則更改沒有保存住無效。
5、執行完成后通過命令 service mysql restart 來重啟mysql數據庫,大功告成
ERROR 1130: Host '192.168.xx.xxx' is not allowed to connect to this MySQL ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
use mysqlmysql> select host, user from user;將相應用戶數據表中的host字段改成'%';
update user set host='%' where user='root';ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'?不予理會
flush privileges;重新遠程連接OK
MySQL服務正在啟動或停止中,請稍候片刻后再試一次【解決方案】
首先以管理員身份打開命令行窗口,注意是管理員身份,不然無權限訪問。之后輸入命令“tasklist| findstr "mysql"”,用于查找mysql的殘留進程。果不其然,確實存在mysql的殘留進程,難怪一直提示MySQL服務處于正在啟動或者停止的狀態中,此時要做的就是殺死MySQL進程。之后輸入命令“taskkill/f /t /im mysqld.exe”,就可以將mysql殘留進程全部殺死了,再次輸入命令“tasklist| findstr "mysql"”,查看是否還留有有其他的mysql殘留進程,如果還有,則繼續殺死,直到完全殺死進程為止,如下圖所示。
?當mysql殘留進程全部結束之后,我們就可以正常啟動MySQL服務了,如下圖所示。需要注意的是此時還是要以管理員的身份進入命令行窗口。
?
總結
以上是生活随笔為你收集整理的mysql数据库提示本地无法连接远程服务器(Host is not allowed to connect to this MySQL server)解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL修改字符集步骤(字段插入中文提
- 下一篇: IntelliJ IDEA 设置代码检查