在 Linux 系统中使用 宝塔面板(BT Panel)默认情况下只支持安装一个版本的 MySQL。但如果你有特殊需求,比如需要运行两个不同版本的 MySQL 服务(例如:MySQL 5.6 和 MySQL 8.0),可以通过以下方法实现。
✅ 实现方式概述:
宝塔面板本身不支持直接安装多个 MySQL 版本,但我们可以通过以下两种方式实现“多版本 MySQL”共存:
方式一:使用宝塔安装一个 MySQL + 手动编译/安装另一个 MySQL
- 宝塔安装一个版本(如 MySQL 5.6)
- 手动安装另一个版本(如 MySQL 8.0)
方式二:全部手动安装多个 MySQL 版本(不通过宝塔)
- 不使用宝塔安装 MySQL
- 自行下载、配置多个 MySQL 实例,监听不同的端口
🧩 示例:宝塔安装 MySQL 5.6 + 手动安装 MySQL 8.0
步骤1:通过宝塔安装一个 MySQL
- 登录宝塔面板
- 软件商店 → 安装 MySQL 5.6(或其他版本)
- 等待安装完成,记录用户名和密码
此时 MySQL 默认运行在
3306端口
步骤2:手动安装第二个 MySQL 版本(如 MySQL 8.0)
1. 下载 MySQL 8.0 的二进制包
cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz
解压并移动到 /usr/local/mysql80
tar -xvf mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.xx-linux-glibc2.12-x86_64 /usr/local/mysql80
2. 创建用户和目录
groupadd mysql80
useradd -r -g mysql80 -s /bin/false mysql80
mkdir -p /data/mysql80/data
chown -R mysql80:mysql80 /data/mysql80
3. 配置 my.cnf(放在 /data/mysql80/my.cnf)
[client]
port=3307
socket=/tmp/mysql80.sock
[mysqld]
port=3307
socket=/tmp/mysql80.sock
basedir=/usr/local/mysql80
datadir=/data/mysql80/data
pid-file=/data/mysql80/data/mysql.pid
server-id=2
log-error=/data/mysql80/data/error.log
4. 初始化数据库
cd /usr/local/mysql80
./bin/mysqld --initialize-insecure --user=mysql80 --basedir=/usr/local/mysql80 --datadir=/data/mysql80/data
--initialize-insecure表示初始化时不设置随机密码
5. 启动 MySQL 8.0
./bin/mysqld_safe --defaults-file=/data/mysql80/my.cnf --user=mysql80 &
6. 设置 root 密码
./bin/mysqladmin -u root password 'yourpassword' -S /tmp/mysql80.sock
步骤3:测试连接
你可以使用如下命令分别连接两个 MySQL 实例:
# 连接宝塔安装的 MySQL 5.6
mysql -u root -p -h localhost -P 3306
# 连接手动安装的 MySQL 8.0
mysql -u root -p -h localhost -P 3307 -S /tmp/mysql80.sock
🔧 可选:添加开机启动脚本
你可以为 MySQL 8.0 添加 systemd 或 init.d 启动脚本,确保重启后自动运行。
⚠️ 注意事项
| 项目 | 说明 |
|---|---|
| 端口冲突 | 两个 MySQL 必须使用不同端口 |
| 数据目录 | 每个实例必须使用独立的数据目录 |
| sock 文件 | 每个实例必须使用不同的 sock 文件路径 |
| 用户权限 | 使用专用用户运行每个实例,避免权限问题 |
📌 总结
虽然宝塔面板不支持直接安装多个 MySQL 版本,但你可以:
✅ 使用宝塔安装一个 MySQL
✅ 手动安装另一个版本的 MySQL(指定不同端口、数据目录)
✅ 分别管理两个数据库实例
如果你是开发调试用途,也可以考虑使用 Docker 来部署多个 MySQL 实例,更加方便。
是否需要我提供一个完整的 Shell 脚本来自动安装 MySQL 8.0?或者需要教你如何用 Docker 实现?
云计算导航