linux宝塔面板安装两个mysql版本?

在 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

  1. 登录宝塔面板
  2. 软件商店 → 安装 MySQL 5.6(或其他版本)
  3. 等待安装完成,记录用户名和密码

此时 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 实现?

未经允许不得转载:云计算导航 » linux宝塔面板安装两个mysql版本?