如何用宝塔安装两个数据库?

在宝塔面板(BT Panel)中安装多个数据库实例,通常指的是同时运行多个不同版本的 MySQL/MariaDB 服务(例如:一个用于生产环境的 MySQL 8.0,另一个用于测试环境的 MySQL 5.7),或者是安装不同的数据库软件(如 MySQL + PostgreSQL)。

宝塔默认只允许在同一端口(3306)上运行一个数据库服务。要实现“两个”数据库,主要有以下两种场景和解决方案:

场景一:需要运行同一类型的多个版本(如 MySQL 5.7 和 MySQL 8.0 共存)

这是最常见的情况。由于它们不能共用同一个端口,你需要通过多实例管理Docker来实现。

方法 A:使用宝塔自带的“多版本管理”功能(推荐,最简单)

较新版本的宝塔面板(Pro 版或特定社区版插件)支持直接切换或管理多版本,但更通用的方法是利用宝塔的应用商店安装第二个实例,或者手动配置多实例。

如果宝塔界面没有直接的“添加第二个 MySQL"按钮,最稳妥的方式是使用 Docker 容器化部署(见方法 B),或者手动配置 Linux 下的 MySQL 多实例(难度较高,不推荐新手操作)。

最推荐的简易方案:使用 Docker 安装第二个 MySQL

  1. 确保已安装 Docker 插件
    • 进入宝塔面板 -> 软件商店
    • 搜索 Docker 并点击安装(如果没有此插件,请先安装)。
  2. 创建第一个 MySQL 容器(如果还没做):
    • 在 Docker 面板中,选择“镜像”,拉取 mysql:5.7
    • 点击“创建容器”,设置端口映射(例如主机 3306 -> 容器 3306),设置环境变量(root 密码等)。
  3. 创建第二个 MySQL 容器
    • 再次拉取镜像 mysql:8.0(或其他版本)。
    • 点击“创建容器”。
    • 关键步骤:在端口映射处,将主机端口改为非冲突端口,例如 3307
    • 设置好对应的数据目录挂载路径(避免覆盖第一个容器的数据)。
  4. 连接方式
    • 程序连接时,第一个库用 localhost:3306,第二个库用 localhost:3307

方法 B:手动配置原生多实例(高级用户)

如果你不想用 Docker,必须在系统层面安装两个原生 MySQL 进程,需要手动修改配置文件。

  1. 下载并编译/安装第二个 MySQL
    • 去 MySQL 官网下载第二个版本的二进制包(如 mysql-8.0.x-linux-glibc2.12-x86_64.tar.gz)。
    • 解压到不同目录,例如 /usr/local/mysql2
  2. 配置多实例参数
    • 复制一份 my.cnf 到新目录,修改关键配置:
      [mysqld]
      # 必须修改端口,否则冲突
      port = 3307
      # 必须修改 socket 文件路径
      socket = /tmp/mysql2.sock
      # 必须修改数据目录,防止覆盖
      datadir = /data/mysql2_data
      # PID 文件路径也要改
      pid-file = /var/run/mysqld/mysqld.pid
  3. 初始化并启动
    • 执行初始化命令(针对新目录):
      /usr/local/mysql2/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql2 --datadir=/data/mysql2_data
    • 启动服务(需编写 systemd 服务文件或直接用脚本启动):
      /usr/local/mysql2/bin/mysqld_safe --defaults-file=/path/to/new/my.cnf &
  4. 宝塔集成
    • 宝塔原生的“网站/数据库”菜单可能无法自动识别这个新实例。你通常需要直接在命令行登录 mysql -u root -p -P 3307 -S /tmp/mysql2.sock 来管理它。
    • 在宝塔中创建网站时,需要在代码配置文件中手动指定端口 3307

场景二:需要不同类型的数据库(如 MySQL + PostgreSQL)

这种情况不需要特殊技巧,直接安装即可,因为它们使用的端口完全不同。

  1. 安装 MySQL
    • 进入 软件商店 -> 搜索 MySQL -> 选择版本(如 5.7 或 8.0)-> 点击安装。
    • 默认监听端口:3306
  2. 安装 PostgreSQL
    • 回到 软件商店 -> 搜索 PostgreSQL -> 选择版本 -> 点击安装。
    • 默认监听端口:5432
  3. 结果
    • 此时你的服务器同时拥有两个数据库服务。
    • 在宝塔的“数据库”列表中,你会看到两个独立的条目,分别对应不同的类型和端口,互不干扰。

总结建议

需求场景 推荐方案 优点 缺点
MySQL + PostgreSQL 直接安装两个软件 简单,宝塔原生支持
MySQL 5.7 + MySQL 8.0 Docker 容器化 (端口 3306 + 3307) 隔离性好,升级方便,不影响宝塔主面板 需要安装 Docker 插件
MySQL 5.7 + MySQL 8.0 手动配置多实例 无需额外资源开销 配置复杂,维护困难,宝塔管理不便

对于大多数用户,强烈建议使用 Docker 方式来运行多个同类型的数据库实例,这样既保证了环境隔离,又方便备份和管理,且不会弄乱宝塔原有的系统配置。