在宝塔面板中创建支持远程连接的数据库,需要完成以下关键步骤(以 MySQL/MariaDB 为例):
✅ 一、创建数据库与用户
-
登录宝塔面板 → 左侧菜单 数据库
-
点击 添加数据库
- 数据库名:自定义(如
mydb) - 用户名:自定义(如
user_remote) - 密码:设置强密码(建议勾选“随机生成”)
- 授权主机:⚠️ 关键步骤!
默认是localhost(仅本地访问),需改为:%→ 允许任意 IP 远程连接(生产环境慎用,仅限测试或内网)- 具体 IP(如
192.168.1.100)→ 更安全的做法:只允许可信 IP 访问
📌 注意:修改后需点击 确定 保存,系统会自动执行
GRANT语句。
- 数据库名:自定义(如
-
点击 确定 完成创建。
✅ 二、配置防火墙(宝塔安全组 + 系统防火墙)
方法 1:宝塔面板内置防火墙(推荐)
- 进入 安全 菜单
- 找到 放行端口 区域
- 添加规则:
- 端口号:
3306(MySQL 默认) - 协议:
TCP - 描述:
MySQL 远程访问 - 状态:✅ 开启
- 端口号:
- 点击 保存
方法 2:云服务器安全组(阿里云/腾讯云等)
- 登录云控制台 → 实例 → 安全组
- 添加入站规则:
- 类型:自定义 TCP
- 端口范围:
3306 - 源 IP:填写你的客户端 IP(如
0.0.0.0/0不推荐!) - 策略:允许
🔒 安全提示:生产环境严禁使用
%+0.0.0.0/0,应限制为具体业务服务器 IP。
✅ 三、验证远程连接
从客户端机器测试(以命令行为例):
mysql -h <宝塔服务器公网IP> -P 3306 -u user_remote -p
# 输入刚才设置的密码
若成功进入 mysql> 提示符,则远程连接正常。
也可用 Navicat / DBeaver 等工具连接:
- 主机:宝塔服务器公网 IP
- 端口:3306
- 用户名/密码:对应创建的账号
- 加密方式:建议选择
mysql_native_password(旧版兼容性好)
⚠️ 常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
Access denied for user 'xxx'@'yyy' |
授权主机未匹配 | 检查数据库中该用户的 host 字段是否为 % 或目标 IP |
| 连接超时 | 防火墙/安全组未放行 | 双重检查宝塔安全 + 云厂商安全组规则 |
Can't connect to MySQL server |
MySQL 未监听外部接口 | 编辑 /etc/my.cnf,确保 [mysqld] 下有:bind-address = 0.0.0.0然后重启 MySQL |
💡 补充:若修改了
bind-address,需在宝塔 软件商店 → MySQL → 配置文件 中调整并重启服务。
按以上步骤操作后,即可安全地实现远程数据库连接。如有特定云服务商(如 AWS/Aliyun)或特殊网络环境(如X_X),可进一步说明,我提供针对性方案。
CLOUD技术笔记