数据库无法连接和访问

目录

第一步:优先检查「云服务器安全组」(最常见原因)

第二步:检查「云服务器本地防火墙」(第二道防线)

方法一:关闭虚拟系统的防火墙(危险大,不推荐)

方法二、修改防火墙操作步骤(根据你服务器的 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 系统(图形界面操作)

  1. 打开设置 → 进入更新和安全 → 选择Windows 安全中心;
  2. 点击防火墙和网络保护,分别对 “域网络”“专用网络”“公用网络” 的防火墙开关设为关闭。

注意:

         关闭防火墙会降低系统安全性,仅建议在测试或信任环境中临时使用。若需开放特定端口(如 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,表示成功!

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

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐