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

相关推荐
5 3219 分钟前
无公网实体服务器加装多个操作系统供多个用户互不打扰使用_part1
运维·服务器
达斯维达的大眼睛11 分钟前
Linux网络多进程并发服务器和多线程并发服务器
linux·服务器·网络
A林玖27 分钟前
【学习笔记】服务器上使用 nbconvert 将 Jupyter Notebook 转换为 PDF
服务器·笔记·学习
星释1 小时前
阿里云服务迁移实战: 02-服务器迁移
服务器·阿里云·云计算
孟里啥都有.1 小时前
linux内核升级
linux·运维·服务器
xyd陈宇阳1 小时前
Linux 入门八:Linux 多进程
linux·运维·服务器
一杯咖啡*_*6 小时前
VSCode优雅的使用debug
ide·vscode·python·编辑器·bug
搜搜秀10 小时前
find指令中使用正则表达式
linux·运维·服务器·正则表达式·bash
Archie_IT11 小时前
修图自由!自建IOPaint服务器,手机平板随时随地远程调用在线P图
运维·服务器·前端·git·深度学习·npm·conda