【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 数据库时遇到的问题。

相关推荐
imc.111 小时前
linux基础IO
linux·运维·服务器
躺不平的理查德1 小时前
让Ubuntu 的第二块网卡 ens37 永久固定为 192.168.30.111
运维·服务器
bitbrowser1 小时前
Facebook 验证反复回到原页面,应该从哪里排查
运维·服务器·facebook
糖果店的幽灵2 小时前
langgraph的分支结构之 - 静态分支详解
java·服务器·数据库·langgraph
虹科网络安全2 小时前
艾体宝新闻|从 SQL 注入到服务器接管:CVE-2026-57517 暴露 Web 管理面板的供应链与安全编码风险
服务器·前端·sql
AC赳赳老秦3 小时前
招投标公开数据自动化采集实战:基于 OpenClaw 的定时抓取与业务关键词精准推送
运维·服务器·数据库·自动化·测试用例·deepseek·openclaw
酷可达拉斯3 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
ManageEngine卓豪3 小时前
阿里云ECS/RDS/OSS性能故障全链路排查指南:从单服务根因定位到跨服务连锁故障分析
阿里云·oss·ecs·rds·性能故障排查
2301_777998343 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器
霸道流氓气质4 小时前
SpringBoot中集成阿里云消息队列 ApsaraMQ for RabbitMQ 全面指南
spring boot·阿里云·java-rabbitmq