navicat远程连接报错

mysql,2003 can't connect to mysql server on 10038

我们连接远程服务器的mysql,如果出现问题,很大问题会出在服务器的端口和授权问题

# 首先我们通过netstat -an|grep 3306来查看mysql默认的端口3306是否开启,允许哪个ip使用
如果你发现,前面有127.0.0.1,就说明,3306端口只能本机ip使用,我们需要
#打开mysql配置文件vi /etc/mysql/mariadb.conf.d/50-server.cnf
将bind-address = 127.0.0.1注销​
#进入mysql,对远程用户进行授权,
grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';
这里的root 是你远程登录的用户,xxxxxx是你登录使用的密码,然后可以在mysql数据 表中查看到你这个用户已经被添加到user表中
# 刷新权限
FLUSH PRIVILEGES;
# 重启数据库
/etc/init.d/mysql restart

1130 - Host XXX is not allowed to connect to this MySQL server。

#1.在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。
#2.在安装Mysql数据库的主机上登录root用户:
mysql -u root -p
#3.依次执行如下命令:
use mysql;
select host from user where user='root';
可以看到当前主机配置信息为localhost.
#4.将Host设置为通配符%
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。 
#注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;
update user set host = '%' where user ='root';  # 报错不用理会
Host设置了“%”后便可以允许远程访问。
#5.Host修改完成后记得执行flush privileges使配置立即生效
flush privileges;
#6.使用navicat 成功连接至mysql
原文地址:https://www.cnblogs.com/daofaziran/p/12884437.html