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