美文网首页
Navicat连接MySql报错

Navicat连接MySql报错

作者: 悠然望剑 | 来源:发表于2018-08-15 16:33 被阅读0次

    错误:1130 - Host 'xxxx' is not allowed to connect to this MySQL server

    原因:本地IP(xxx)没有访问远程数据库的权限。

    解决办法:

    1、登录服务器MySQL命令行客户端:

    mysql -u root -p

    2、输入

    user mysql;

    select user,host from user;

    可以看到host中只有localhost主机。我们需要将本地IP也添加到这里。

    3、输入

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

    或者直接赋予所有IP远程访问权限

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

    然后输入

    flush privileges;

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

    现在使用Navicat远程连接试一试,应该可以正常打开了。

    4、如果还是连接不到,就可能是mysql server绑定了本地地址

    打开/etc/mysql/mysql.conf.d/mysqld.cnf,

    找到:bind-address = 127.0.0.1

    去除IP地址绑定,把它改为:bind-address = 0.0.0.0

    然后重启mysql

    service mysql restart

    5、如果Mysql是在阿里云的云服务上,那么在完成以上步骤后,本地使用Navicat连接远程mysql可能仍然包10038错误,这是因为阿里云服务器的远程3306端口默认是关闭的,需要登录阿里云服务器,在安全组中添加一条配置规则,打开3306端口,就可以正常连接了


    如果嫌以上步骤太麻烦,连接mysql有一个快捷方法。在Navicat连接属性中选择SSH选项,勾选使用SSH通道,然后输入服务器IP,用户名和密码,然后范围常规选项,主机名或IP地址输入localhost(或者127.0.0.1),用户名和密码输入服务器mysql的用户和密码即可。

    其原理是,先通过SSH登录到服务器,然后以本地IP访问Mysql,所以不需要更改Mysql的默认设置,而且阿里云服务器的22端口(SSH协议使用的端口)是默认打开的。

    相关文章

      网友评论

          本文标题:Navicat连接MySql报错

          本文链接:https://www.haomeiwen.com/subject/wrywbftx.html