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

相关推荐
爱奥尼欧26 分钟前
【Linux】环境变量完全解析
linux·运维·服务器
Simon—欧阳1 小时前
微信小程序真机调试时如何实现与本地开发环境服务器交互
服务器·微信小程序·小程序
vvilkim1 小时前
深入理解C#异步编程:原理、实践与最佳方案
服务器·开发语言·c#
加百力2 小时前
戴尔AI服务器订单激增至121亿美元,但传统业务承压
大数据·服务器·人工智能
运维成长记2 小时前
ansible-playbook 进阶 接上一章内容
linux·服务器·ansible
愚润求学3 小时前
【Linux】mmap文件内存映射
linux·运维·服务器·开发语言·c++
hgdlip3 小时前
换ip是换网络的意思吗?怎么换ip地址
服务器·网络·tcp/ip
shmily_ke4 小时前
如何将vue2使用npm run build打包好的文件上传到服务器
服务器·前端·npm
linux行者5 小时前
Linux 资源限制(进程级,用户级,系统级)
linux·运维·服务器
爷一隐居青楼5 小时前
PGSQL结合linux cron定期执行vacuum_full_analyze命令
java·linux·服务器