在宝塔面板中安装两个不同版本的 MySQL 是可行的,但需要注意以下几点:
- 宝塔默认只支持安装一个 MySQL 实例(通过软件商店安装)。
- 要运行多个 MySQL 版本,需要手动安装其中一个版本,并指定不同的端口、数据目录等配置。
下面是详细的步骤说明,教你如何在 宝塔面板 中安装两个不同版本的 MySQL。
🧩 方案一:使用宝塔安装一个版本 + 手动安装另一个版本
✅ 推荐方式:
- 用宝塔安装一个版本(比如 MySQL 5.6)
- 手动编译或解压安装另一个版本(比如 MySQL 8.0)
🔧 步骤详解
1. 使用宝塔安装第一个 MySQL 版本
进入【宝塔面板】 → 【软件商店】 → 搜索 MySQL → 安装你想要的第一个版本(如 MySQL 5.6)
宝塔会自动配置环境变量、服务、开机启动等。
2. 准备手动安装第二个 MySQL 版本(例如 MySQL 8.0)
📌 步骤如下:
2.1 下载 MySQL 二进制包
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
你可以从 MySQL官网 获取对应版本的下载链接。
2.2 解压并创建软连接
xz -d mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.xx-linux-glibc2.12-x86_64.tar
mv mysql-8.0.xx-linux-glibc2.12-x86_64 /usr/local/mysql8
2.3 创建用户和目录
groupadd mysql8
useradd -r -g mysql8 mysql8
mkdir -p /usr/local/mysql8/data
chown -R mysql8:mysql8 /usr/local/mysql8
2.4 初始化数据库
cd /usr/local/mysql8
./bin/mysqld --initialize-insecure
--user=mysql8
--basedir=/usr/local/mysql8
--datadir=/usr/local/mysql8/data
--initialize-insecure表示不生成随机密码,方便后续设置。生产环境建议使用安全初始化。
2.5 配置 my.cnf 文件(注意端口不同)
创建配置文件 /etc/my8.cnf:
[client]
port = 3307
socket = /tmp/mysql8.sock
[mysqld]
port = 3307
socket = /tmp/mysql8.sock
basedir = /usr/local/mysql8
datadir = /usr/local/mysql8/data
pid-file = /usr/local/mysql8/data/mysql8.pid
user = mysql8
skip-name-resolve
max_connections = 200
innodb_buffer_pool_size = 128M
key_buffer_size = 32M
server-id = 2
log-bin=mysql-bin
2.6 启动 MySQL 8
/usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my8.cnf &
2.7 设置开机自启(可选)
创建服务脚本 /etc/systemd/system/mysql8.service:
[Unit]
Description=MySQL 8.0 Server
After=network.target
[Service]
User=mysql8
Group=mysql8
ExecStart=/usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my8.cnf
Restart=always
[Install]
WantedBy=multi-user.target
启用服务:
systemctl daemon-reexec
systemctl enable mysql8
systemctl start mysql8
3. 测试访问两个 MySQL 实例
- 默认 MySQL(宝塔安装):端口
3306 - 手动安装的 MySQL 8:端口
3307
mysql -u root -p -h 127.0.0.1 -P 3306
mysql -u root -p -h 127.0.0.1 -P 3307
💡 注意事项
| 项目 | 内容 |
|---|---|
| 端口冲突 | 两个 MySQL 必须使用不同端口 |
| 数据目录 | 不同实例的数据目录必须独立 |
| 用户权限 | 不同实例使用的系统用户最好不同 |
| 备份策略 | 分别备份,避免混乱 |
| 宝塔操作 | 宝塔只能管理它自己安装的那个 MySQL |
🛠️ 可选优化
- 使用宝塔计划任务定期备份两个数据库
- 在宝塔中添加反向或其他应用时注意连接哪个数据库
- 如果你是开发测试用途,也可以考虑使用 Docker 来运行多版本 MySQL
🐳 替代方案:使用 Docker 安装多个 MySQL 版本
如果你熟悉 Docker,可以轻松部署多个 MySQL 实例:
docker run --name mysql56 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.6
docker run --name mysql80 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:8.0
这样你就可以通过 localhost:3306 和 localhost:3307 访问两个不同版本的 MySQL。
✅ 总结
| 方法 | 是否推荐 | 说明 |
|---|---|---|
| 宝塔安装一个 + 手动安装一个 | ✅ 推荐 | 控制灵活,适合服务器环境 |
| 宝塔安装两个(不推荐) | ❌ 不支持 | 宝塔只允许安装一个 MySQL |
| Docker 安装多个 | ✅ 推荐 | 开发测试非常方便 |
如果你有具体要安装的两个版本号,我可以提供更具体的命令和配置文件。欢迎继续提问!
云计算