最近加班挺多,因此也很久没远程访问本身云服务器上的MySQL
数据库了。今天本地启动Node
服务时连不上MySQL
,照经常使用Navicat For MySQL
链接远程数据库进行检查,结果发现忽然报错了。mysql
2003-Can’t connect to MySQL server on ‘XXX.XX.XX.XX’(10060)
第一反应仍是检查网络是否是正常,因此就立刻ping
测试一下,然而发现并非网络问题,能够正常ping
通。sql
ping XXX.XX.XX.XX 正在 Ping XXX.XX.XX.XX 具备 32 字节的数据: 来自 XXX.XX.XX.XX 的回复: 字节=32 时间=64ms TTL=47 来自 XXX.XX.XX.XX 的回复: 字节=32 时间=86ms TTL=47
而后就想着看看云服务器的安全组设置是否有问题,可是以前都没出过这个问题,讲道理安全组出现问题的可能性不大,但仍是先检查下为妙。shell
登陆腾讯云后,发现实例对应的安全组设置妥妥的,没有什么问题。数据库
因为是我本身的服务器,因此用的都是root
用户。须要在xshell
中登陆MySQL
查询下user
表。centos
mysql -uroot -p 输入密码 mysql> use mysql mysql> select host,user from user; +-----------+------------------+ | host | user | +-----------+------------------+ | % | root | | localhost | mysql.infoschema | | localhost | mysql.session | | localhost | mysql.sys | +-----------+------------------+ 4 rows in set (0.00 sec)
能够发现,root
对应的host
是%
,任意的意思,也就意味着root
用户在链接MySQL
时不受ip
约束。安全
因此说也不是这里的问题啦!服务器
这是很容易忽略的一步,可能不少人都会认为安全组已经设置好了,没必要再检查CentOS
的防火墙。实际上是颇有必要检查防火墙的,咱们应该把3306
放通,再重启防火墙。网络
[root@VM_0_14_centos ~]# firewall-cmd --permanent --zone=public --add-port=3306/tcp success [root@VM_0_14_centos ~]# firewall-cmd --reload success
而后一看,很愉快,Navicat for MySQL
链接远程数据库成功!session