51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【MySQL 系列】'MySQL 远程连接失败 (错误码:2003)'

1. 环境信息 {#1- 环境信息}

  • 服务器系统:Centos 7.6
  • 服务器 MySQL 版本:8.0.25
  • 本地系统:Windows10
  • 本地客户端:navicat 15

2. 本地客户端连接远程服务器 MySQL 报错 {#2- 本地客户端连接远程服务器 MySQL 报错}

3. 错误描述 {#3- 错误描述}

"error 2003: can't connect to mysql server on '***' (10061)"

Google 翻译:错误 2003:无法连接到"**"上的 mysql 服务器(10061)

4. 解决过程 {#4- 解决过程}

  1. Xshell 远程登陆服务器,用"ps aux|grep mysql"命令查看,MySQL 服务已启动:

  2. 用"vim my.cnf"命令查看 my.cnf 文件 (在 MySQL 安装目录下,我的位置是 /etc/my.cnf), 修改其对应的值并重启 MySQL。对应内容如下:

[mysqld]
bind-address=0.0.0.0	# 表示允许任何主机登陆 MySQL
port=3306               # 表示 MySQL 运行端口为 3306
  1. 用"mysql -uroot -p"命令,回车后输入密码"***"能正常登陆服务器 MySQL
mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)
  1. 查看 MySQL 权限配置
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
`Database changed
mysql`>` `select` host,user from user`;`
+-----------+------------------+
`|` `host`      `|` user             `|`
+-----------+------------------+
`|` %         `|` root             `|`
`|` %         `|` zijing           `|`
`|` localhost `|` mysql.infoschema `|`
`|` localhost `|` mysql.session    `|`
`|` localhost `|` mysql.sys        `|`
+-----------+------------------+
`5` rows `in` `set` `(0.00` sec`)

  1. 如果上述查询结果,root 用户对应的 host 不为 %,则修改用户权限、
  2. 此处需注意的是,修改权限时要带上密码 (IDENTIFIED BY 'password')。
  1. 修改完以上操作,我尝试链接 MySQL,但还是无法成功

我以为可能是防火墙原因,但之前已经将 3306 端口暴露出来了

  • 已经开放了远程端口

  1. 目前所有可以尝试的办法都已经尝试过了,突然灵光一闪,我想起来之前 ecs 服务器是需要开放防火墙端口的,可能需要我去控制台开启 3306 的访问端口,于是我百度了轻量型应用服务器如何开启安全组

官网地址:传送门

  1. 当我开启了控制台的防火墙端口,感觉世界真的很美好了

  1. 使用 navicat 链接 MySQL

成功了,想起来前辈说的那句话,每次遇到一些莫名其妙的错误,怎么都排查不出来的时候,那个错误一定是个非常无脑的问题。

赞(0)
未经允许不得转载:工具盒子 » 【MySQL 系列】'MySQL 远程连接失败 (错误码:2003)'