• 记一次Navicat for MySQL 10060错误的解决过程


    最近加班挺多,所以也好久没远程访问自己云服务器上的MySQL数据库了。今天本地启动Node服务时连不上MySQL,照常用Navicat For MySQL连接远程数据库进行检查,结果发现突然报错了。

    2003-Can’t connect to MySQL server on ‘XXX.XX.XX.XX’(10060)
    

    检查网络

    第一反应还是检查网络是不是正常,所以就马上ping测试一下,然而发现并不是网络问题,可以正常ping通。

    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
    

    检查安全组

    然后就想着看看云服务器的安全组设置是否有问题,但是之前都没出过这个问题,讲道理安全组出现问题的可能性不大,但还是先检查下为妙。

    登录腾讯云后,发现实例对应的安全组设置妥妥的,没有什么问题。

    安全组正常

    检查下用户权限

    由于是我自己的服务器,所以用的都是root用户。需要在xshell中登录MySQL查询下user表。

    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防火墙

    这是很容易忽略的一步,可能很多人都会认为安全组已经设置好了,不必再检查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连接远程数据库成功!

    Navicat for MySQL连接成功

    欢迎关注&交流

  • 相关阅读:
    Linux下通过C++码来操作MySQL数据库
    Linux TCP/IP 实例
    Linux UDP C/S例子
    memcached: error while loading shared libraries: libevent-2.0.so.5: cannot o解决
    /etc/profile和/root/.bash_profile有什么区别
    双Y轴柱线结合图(FusionChart)
    分组柱状图(FusionChart)
    远程过程调用(RPC)
    软件系统开发中的数据交换协议
    RPC 远程过程调用协议
  • 原文地址:https://www.cnblogs.com/wenbinjiang/p/12511116.html
Copyright © 2020-2023  润新知