宝塔搭建的数据库怎样让别的网站用?

在宝塔面板中搭建的数据库要让其他网站使用,需要进行以下配置:

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加密连接提高安全性。