云服务器的数据库连接失败?四步排查法搞定
数据库无法连接和访问
目录
方法二、修改防火墙操作步骤(根据你服务器的 Linux 发行版选择命令):
第三步:确认「MySQL 用户 yuxun 有远程访问权限」
第一步:优先检查「云服务器安全组」(最常见原因)
云服务器(如阿里云、腾讯云、华为云)的 安全组 是「网络入口第一道防线」,默认不会开放 3306 端口(MySQL 端口),需要在安全组手动添加3306端口开放连接。


第二步:检查「云服务器本地防火墙」(第二道防线)
即使安全组开放了 3306 端口,云服务器操作系统的本地防火墙(如 Linux 的 firewalld 或 ufw)若未开放 3306 端口,仍会拦截连接。
方法一:关闭虚拟系统的防火墙(危险大,不推荐)
1、打开宝塔,可以直接关闭防火墙(最简单)

2、远程连接云服务操作系统先输入:
注意:关闭防火墙的操作需根据操作系统类型选择对应方法:
一、Linux 系统
1、CentOS/RHEL 系统(7 及以上)
临时关闭(重启后失效):
sudo systemctl stop firewalld
永久关闭(禁止开机自启):
sudo systemctl disable firewalld
2、Ubuntu/Debian 系统
临时关闭(重启后失效):
sudo ufw disable
彻底清空规则(谨慎操作,会允许所有流量):
sudo iptables -F && sudo iptables -X && sudo iptables -P INPUT ACCEPT
二、Windows 系统(图形界面操作)
- 打开设置 → 进入更新和安全 → 选择Windows 安全中心;
- 点击防火墙和网络保护,分别对 “域网络”“专用网络”“公用网络” 的防火墙开关设为关闭。
注意:
关闭防火墙会降低系统安全性,仅建议在测试或信任环境中临时使用。若需开放特定端口(如 MySQL 的 3306),优先通过防火墙规则放行,而非直接关闭防火墙。
方法二、修改防火墙操作步骤(根据你服务器的 Linux 发行版选择命令):
1、宝塔直接添加放行3306端口(最简单)

2、远程连接云服务操作系统系统
情况 1:服务器是 CentOS/RHEL 系列(用 firewalld)
# 1. 登录云服务器(通过 SSH,如 xshell、终端)
ssh 用户名@你的公网ip
# 比如 ssh root@8.634.173.12
# 2. 检查 3306 端口是否已开放
firewall-cmd --query-port=3306/tcp
# 3. 若返回 no(未开放),执行以下命令开放并永久生效
firewall-cmd --add-port=3306/tcp --permanent # 永久开放 3306 端口
firewall-cmd --reload # 重新加载防火墙规则,使配置生效
# 4. 再次检查,确认返回 yes
firewall-cmd --query-port=3306/tcp
情况2 :服务器系统是 Ubuntu/Debian 系列(用 ufw)-我们开通的时Ubuntu
# 1. 登录云服务器
ssh 用户名@你的公网ip
如:ssh root@8.234.183.13
# 2. 检查防火墙状态及 3306 端口(即你的Mysql访问端口)
ufw status verbose # 查看是否有 3306/tcp ALLOW 规则
# 3. 若未开放,执行以下命令
ufw allow 3306/tcp # 开放 3306 端口
ufw reload # 重载规则
# 4. 再次检查状态
ufw status verbose
操作示意图:


第三步:确认「MySQL 用户 yuxun 有远程访问权限」
你配置的数据库用户假如是 yuxun(非 root),需确保该用户被授权「从外部机器访问」(MySQL 用户权限与「用户名 @主机」绑定,默认可能只允许本地访问)。
打开宝塔面板,找到你需要访问数据库,
如图中的book数据库,点击权限,选择访问权限所有人

第四步:使用工具确认连接成功
打开idea或其他数据库连接工具(如Navicat),链接Mysql数据库
因为要测试功能接口,所以我们以idea为例:

关键步骤:
Host填写你的云服务器的公网IP地址,端口填你的端口(如果没改过的,默认是3306),填入你的云服务器的数据库账号密码(非root账户),点击“Test Connection”,出现Succeeded,表示成功!

启动你的项目,就可以正常操作数据库了

更多推荐



所有评论(0)