宝塔怎样支持多版本数据库?

宝塔面板(BT Panel)原生支持多版本数据库共存,主要通过独立安装实例端口隔离的方式实现。以下是具体操作方法和注意事项:

核心原理

宝塔默认安装时通常只提供一个版本的数据库(如 MySQL 5.7 或 8.0)。要实现多版本,需要手动安装额外的数据库版本,并让它们监听不同的端口,从而避免冲突。


操作步骤

1. 进入软件商店

登录宝塔面板后台,点击左侧菜单的 【软件商店】

2. 搜索并安装新版本

在搜索框中输入你要安装的数据库版本(例如 MySQLMariaDBPostgreSQL)。

  • 注意:如果当前已安装某个版本(如 MySQL 5.7),再次搜索同一产品名时,宝塔通常会提示“已安装”,但允许你选择不同版本进行安装。
  • 点击 【安装】,在弹出的版本选择窗口中,勾选你想要共存的其他版本(例如同时安装 MySQL 5.7 和 MySQL 8.0)。
  • 等待安装完成。

3. 配置端口(关键步骤)

安装完成后,不同版本的数据库会自动分配不同的默认端口,或者需要你手动修改以避免冲突:

  • 进入 【软件管理】 -> 【数据库】 列表。
  • 你会看到多个数据库实例,例如:
    • mysql-5.7 (默认端口 3306)
    • mysql-8.0 (默认端口 3307 或自动分配)
  • 检查端口:确保每个实例监听的端口号是唯一的。如果端口冲突,请点击对应实例右侧的 【设置】 -> 【端口修改】,将其改为一个未被占用的端口(如 3306, 3307, 3308…)。
  • 保存配置后,宝塔会自动重启对应的数据库服务以应用新端口。

4. 创建数据库与用户

在多版本环境下,你需要为每个版本的数据库分别创建库和用户:

  • 点击对应版本的数据库实例(如 mysql-8.0)。
  • 点击 【数据库管理】 -> 【添加数据库】
  • 输入数据库名、用户名和密码。
  • 重要:在应用程序连接配置中,必须指定正确的主机地址(通常是 127.0.0.1)和端口号(如 3307),而不是默认的 3306。

常见场景与连接示例

假设你安装了两个版本:

  • MySQL 5.7:端口 3306
  • MySQL 8.0:端口 3307

你的代码配置文件(如 .envconfig.php)应如下区分:

# 连接旧版 5.7
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: user_old
DB_PASS: pass_old
DB_NAME: old_db

# 连接新版 8.0
DB_HOST: 127.0.0.1
DB_PORT: 3307
DB_USER: user_new
DB_PASS: pass_new
DB_NAME: new_db

注意事项

  1. 资源占用:同时运行多个数据库实例会消耗更多的 CPU 和内存。请根据服务器配置合理选择版本数量,避免负载过高。
  2. 防火墙设置:如果需要在远程连接数据库,务必在宝塔的 【安全】 面板中放行对应的自定义端口(如 3307),否则外部无法连接。
  3. 备份策略:建议对每个版本的数据库单独设置定时备份任务,防止数据丢失。
  4. 版本兼容性:确保你的应用程序代码与该版本的数据库协议兼容(例如某些旧框架可能不支持 MySQL 8.0 的新加密插件)。

通过以上步骤,你就可以在宝塔面板上轻松实现多版本数据库的共存与管理了。