在宝塔面板中搭建的数据库要让其他网站使用,需要进行以下配置:
1. 创建数据库用户并授权
方法一:通过宝塔面板操作
数据库 → 用户管理 → 添加用户
- 用户名:自定义(如 api_user)
- 密码:设置强密码
- 主机:填写允许连接的IP地址
- 特定IP:192.168.1.100
- 多个IP:192.168.1.% (通配符)
- 所有IP:% (不推荐,有安全风险)
- 权限:选择对应数据库并勾选所需权限
方法二:通过MySQL命令行
-- 创建用户
CREATE USER 'api_user'@'192.168.1.%' IDENTIFIED BY 'your_password';
-- 授权访问特定数据库
GRANT SELECT,INSERT,UPDATE,DELETE ON your_database.* TO 'api_user'@'192.168.1.%';
-- 刷新权限
FLUSH PRIVILEGES;
2. 配置防火墙
宝塔防火墙
安全 → 放行端口
添加:3306 (MySQL默认端口)
来源IP:填写允许连接的IP地址段
服务器防火墙(如iptables)
# 放行3306端口
iptables -I INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT
3. 修改MySQL配置文件
编辑 /www/server/data/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld]
# 注释掉或修改bind-address
# bind-address = 127.0.0.1
bind-address = 0.0.0.0
# 或者添加监听所有IP
skip-networking=0
重启MySQL服务:
systemctl restart mysqld
# 或在宝塔面板重启数据库
4. 其他网站连接配置
在其他网站的数据库配置中使用:
// PHP示例
$host = '你的服务器公网IP';
$port = '3306';
$username = 'api_user';
$password = 'your_password';
$database = 'your_database';
// Node.js示例
const mysql = require('mysql');
const connection = mysql.createConnection({
host: '你的服务器公网IP',
port: 3306,
user: 'api_user',
password: 'your_password',
database: 'your_database'
});
5. 安全建议
✅ 推荐做法:
- 使用特定IP授权,避免使用
% - 为不同网站创建独立数据库用户
- 只授予必要的最小权限
- 使用强密码
- 定期备份数据库
❌ 避免做法:
- 不要开放root用户远程访问
- 不要使用通配符
%授权 - 不要在代码中硬编码数据库密码
- 不要长期开放3306端口给公网
6. 测试连接
# 从其他服务器测试连接
mysql -h 你的服务器IP -u api_user -p
如果连接成功,说明配置完成!
注意: 生产环境建议使用内网IP通信,或配置SSL加密连接提高安全性。
CLOUD云