【BUG】阿里云服务器数据库远程连接报错

当你遇到 ERROR 2003 (HY000): Can't connect to MySQL server on '47.100.xxx.xx' (10061) 错误,这个错误代码 10061 通常意味着客户端无法连接到指定的 MySQL 服务器,原因可能有多种,下面为你分析可能的原因及对应的解决办法。

1. 网络连接问题

测试端口连通性 :在命令提示符中输入 telnet 47.100.165.17 3306

  • 若提示 Connected,说明端口开放,进入下一步;
  • 若提示 无法打开连接,需检查服务器防火墙或云平台安全组设置,确保 3306 端口(TCP)允许入站。

防火墙限制 :阿里云服务器的安全组规则可能会阻止外部的 MySQL 连接请求。你需要在阿里云控制台配置安全组规则,开放 MySQL 服务所使用的端口(默认是 3306)。

①登录阿里云控制台,点击"控制台",找到云服务器 ECS。

②选择对应的实例,点击 "管理"。

③在左侧导航栏中,点击 "安全组"或者"全部操作/网络和安全组/更换安全组",然后选择对应的安全组。

④在 "入方向规则" 中添加规则,协议类型选择 "MySQL (3306)",授权对象可以设置为你的 IP 地址,或者设置为 0.0.0.0/0 允许所有 IP 访问。

网络不通:你可以使用 ping 命令检查本地机器和阿里云服务器之间的网络连接情况。

2. MySQL 服务未启动或监听异常

检查 MySQL 服务状态:登录到阿里云服务器,使用以下命令检查 MySQL 服务是否正在运行。

bash 复制代码
systemctl status mysql

若服务未运行,可使用以下命令启动它。

bash 复制代码
systemctl start mysql

检查 MySQL 监听地址:确认 MySQL 服务器是否监听在正确的 IP 地址和端口上。打开 MySQL 配置文件(通常是 /etc/mysql/mysql.conf.d/mysqld.cnf),找到 bind-address 配置项。

bash 复制代码
bind-address = 0.0.0.0

将其设置为 0.0.0.0 表示监听所有可用的网络接口。修改完成后,重启 MySQL 服务。

bash 复制代码
systemctl restart mysql

3. 检查MySQL用户权限

即使端口开放,MySQL 用户可能无权从远程连接。登录 MySQL 并执行:

bash 复制代码
-- 查看用户权限
SELECT user, host FROM mysql.user;

-- 授权用户从任意IP访问(示例)
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • % 表示允许所有IP,也可替换为你的具体IP。
  • 确保用户名和密码正确。

注意:如果运行第二条命令时出现下图报错:

该错误是由于 GRANT 语句语法问题导致。在 MySQL 中,若要同时创建用户并授权,建议分开操作,先创建用户再授权,具体步骤如下:

  1. 创建用户并设置密码:
bash 复制代码
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
  1. 授予权限:
bash 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

执行上述两条语句,即可完成用户创建与权限授予,避免语法错误。

4. 端口被占用

检查端口占用情况:在阿里云服务器上,使用以下命令检查 3306 端口是否被其他程序占用。

bash 复制代码
netstat -tlnp | grep :3306

若该端口被其他程序占用,你需要停止占用该端口的程序,或者修改 MySQL 配置文件中的端口号。

按照以上步骤逐步排查和解决问题,应该能够解决你连接远程 MySQL 数据库时遇到的问题。

相关推荐
wanhengidc4 小时前
云手机 高振畅玩不踩坑
运维·服务器·安全·web安全·智能手机
IT枫斗者4 小时前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
有谁看见我的剑了?4 小时前
linux 添加硬盘后系统识别不到硬盘处理
linux·运维·服务器
金色光环7 小时前
FreeModbus释放底层的 TCP 监听端口
服务器·网络·tcp/ip
一曦的后花园11 小时前
linux搭建promethes并对接node-exporter指标
linux·运维·服务器
桌面运维家12 小时前
服务器进程异常监控:快速定位与排障实战指南
运维·服务器
@CLoudbays_Martin1112 小时前
UniApp是否能够接入SDK游戏盾呢?
服务器·网络·网络协议·tcp/ip·安全
郝亚军12 小时前
ubuntu 22.04如何安装libmodbus
运维·服务器·ubuntu
李日灐13 小时前
< 6 > Linux 自动化构建工具:makefile 详解 + 进度条实战小项目
linux·运维·服务器·后端·自动化·进度条·makefile