Navicat连接云服务器上的MySQL

Navicat连接云服务器上的MySQL

今天用Navicat连接云服务器上的MySQL,遇到了一些问题,就在这里用博客记录一下。

过程演变

首先我是想当然的以为就跟连接本地数据似的直接填入用户名密码就一切ok,但随后问题就来了,连接不上啊!如下图所示:
在这里插入图片描述
第一反应是很懵逼,随后截个图发给个大神,大神的第一反应是叫我先telnet一下,确保网络是通的,我这才反应过来需要telnet一下mysql的端口,随后而来的便是telnet不通,这时候机智的我想到可能是防火墙没开放3306端口,二话不说直接进入系统一顿命令行操作,成功把启动防火墙并把3306端口开放了,赶紧再去telnet一下,额,迎接我的依然还是连接失败,这时我才想起来云服务器自带防火墙啊!!
随后便是赶紧查看云服务器防火墙安全组是否开通3306端口,果然没让我失望啊!还真就没开通。随后就是开放端口继续telnet,还是自信满满觉得前路一片坦荡得去telnet,迎接我的是telnet通了,一秒不到跳出个“遗失对主机的连接”,我还是头铁再去navivat尝试连接一下,这次花样也变了,跳出个如图所示的错误:
查下资料知道了这是root用户没有开放外部访问资源的权限,随后找到两种方式解决这个问题,在这里插入图片描述
查下资料知道了这是root用户没有开放外部访问资源的权限,随后找到两种方式解决这个问题:

第一种是:
use mysql;
grant all privileges on * . * to ‘root’@’%’ identified by ‘你的密码’;
flush privileges;
这就是授权给网络上的其他主机访问数据库,%表示的是所有主机而不是原先的localhost所表示的本地。授权后刷新下权限。

第二种则是:
show databases;
use mysql;
select user,host,password from user;update user set host = ‘%’ where user=‘root’;
flush privileges;

第二种是直接对表进行update,update原有数据,将root的Host字段改值。当然第一种本质也是更改的mysql的用户表,不过第一种是增加了一行root用户的数据,这个user的Host便是刚刚授权更改的%。

到这里确实是大功告成啦!

这里也有注意的地方,我用的系统是centos7前面说过了系统有自带的防火墙,服务器也有自带的防火墙,由于系统是装在服务器上,这种层次关系就很明显了。于是我试着将系统的防火墙开启,并将我先前开放的3306给删了(通过命令行:firewall-cmd --zone= public --remove-port=80/tcp),再用命令行:firewall-cmd --zone=public --list-ports查看所有打开的端口,发现确实删除,于是再次telnet,发现再次连接不上,navicat也同样连接不上了,做到这里,就能想到系统的防火墙要么关闭,要么打开并将3306端口也要打开,想到就做,开启端口,firewall-cmd --zone=public --add-port=3306/tcp,然后便如我所料又能连接成功了。

如有不足,欢迎各位指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值