mysql 远程连接--Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

怎么解决mysql不允许远程连接的错误
听语音

  • |
  • 浏览:9277
  • |
  • 更新:2014-12-18 17:33
  • |
  • 标签:mysql 
  • 怎么解决mysql不允许远程连接的错误 1
  • 怎么解决mysql不允许远程连接的错误 2
  • 怎么解决mysql不允许远程连接的错误 3
  • 怎么解决mysql不允许远程连接的错误 4
  • 怎么解决mysql不允许远程连接的错误 5
  • 怎么解决mysql不允许远程连接的错误 6
  • 怎么解决mysql不允许远程连接的错误 7
分步阅读

最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server“。解决办法如下:

怎么解决mysql不允许远程连接的错误

方法/步骤

  1. 1

    首先看报错窗口。

    怎么解决mysql不允许远程连接的错误
  2. 2

    经查阅,错误原因是:本地IP(xxx.xxx.xxx.xxx)没有访问远程数据库的权限

    于是下面开启本地IP(xxx.xxx.xxx.xxx)对远程mysql数据库的访问权限。

  3. 3

    首先远程连接进入服务器,在cms中输入mysql -u root -p,然后回车,输入密码后回车进入mysql命令行。

    怎么解决mysql不允许远程连接的错误
  4. 4

    输入use mysql;

    怎么解决mysql不允许远程连接的错误
  5. 5

    输入select user,password,host from user;

    可以看到host中只有localhost主机。我们需要将xxx.xxx.xxx.xxx也添加到这里才对。

    怎么解决mysql不允许远程连接的错误
  6. 6

    添加方法如下:

    输入

    grant all privileges on *.* to root@"xxx.xxx.xxx.xxx" identified by "密码";

    这相当于是给IP-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限。

    然后再输入

    flush privileges;

    这相当于是重新加载一下mysql权限,这一步必须有

    怎么解决mysql不允许远程连接的错误
  7. 7

    再次输入select user,password,host from user;

    可以看到host中已经有了新加的IP。

    怎么解决mysql不允许远程连接的错误
  8. 8

    现在再次用Navicat for MySQl访问远程mysql数据库,已经能正常打开了。

    问题解决。

    怎么解决mysql不允许远程连接的错误
  9. 9

    不过还有一个问题,发现双击打开某张表的时候很慢,至少要3秒。

    原因是:

    当远程访问mysql时, mysql会解析域名, 所以会导致访问速度很慢, 会有2,3秒延时!

    解决办法:

    修改mysql安装目录下的my.ini,加上下面这个配置可解决此问题。在[mysqld]下加入:skip-name-resolve

    保存退出后重启mysql服务。

    然后访问速度就和本地一样快啦。

    怎么解决mysql不允许远程连接的错误
    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,当出现"Host 'xxx' is not allowed to connect to this MySQL server"错误时,可能是由于MySQL服务器配置限制了特定主机的访问权限。解决此问题的方法如下: 1. 确保MySQL服务器允许来自该主机的连接。可以通过以下步骤进行检查和修改: - 登录到MySQL服务器。 - 使用以下命令查看当前的访问控制列表: ```shell SELECT user, host FROM mysql.user; ``` - 确保存在允许访问的用户和主机。如果没有,请使用以下命令添加允许访问的用户和主机: ```shell GRANT ALL PRIVILEGES ON *.* TO 'user'@'host' IDENTIFIED BY 'password'; ``` 其中,'user'是允许访问的用户名,'host'是允许访问的主机名或IP地址,'password'是用户的密码。如果要允许来自任何主机的连接,可以将'host'设置为'%'。 - 使用以下命令刷新权限更改: ```shell FLUSH PRIVILEGES; ``` 2. 确保防火墙或网络安全组未阻止来自该主机的MySQL连接。如果使用防火墙或网络安全组,请确保已允许MySQL服务器的入站连接。 3. 确保MySQL服务器正在运行并监听正确的端口。可以使用以下命令检查MySQL服务器的状态: ```shell systemctl status mysql ``` 如果MySQL服务器未运行,请使用以下命令启动它: ```shell systemctl start mysql ``` 4. 如果以上方法仍然无法解决问题,请检查MySQL服务器的错误日志以获取更多详细信息。错误日志通常位于MySQL服务器的日志目录中,可以使用以下命令查找日志文件的位置: ```shell mysql --help | grep "Default options" ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值