宝塔如何装两个版本MYSQL?

在宝塔面板中安装两个版本的 MySQL 是可以实现的,但需要手动操作并注意端口、数据目录和服务名等配置,避免冲突。以下是详细步骤:


✅ 一、前提说明

宝塔默认只支持安装一个数据库实例(通过软件商店一键安装),但你可以:

  • 使用宝塔安装一个版本(如 MySQL 5.7)
  • 手动编译或通过其他方式安装另一个版本(如 MySQL 8.0 或 MariaDB)

⚠️ 注意:不能通过宝塔图形界面直接安装两个 MySQL,需手动操作第二个。


✅ 二、推荐方案:宝塔装一个 + 手动装另一个

示例:

  • 第一个:通过宝塔安装 MySQL 5.7
  • 第二个:手动安装 MySQL 8.0

✅ 三、具体操作步骤

步骤 1:通过宝塔安装第一个 MySQL(如 5.7)

  1. 登录宝塔面板
  2. 进入「软件商店」
  3. 找到 MySQL 5.7,点击“安装”
  4. 等待安装完成

安装路径一般为:/www/server/mysql


步骤 2:手动安装第二个 MySQL(如 8.0)

1. 下载 MySQL 8.0 的二进制包(推荐)
cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz
tar -xf mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
mv /usr/local/mysql-8.0.36-linux-glibc2.12-x86_64 /usr/local/mysql8
2. 创建用户和目录
groupadd mysql8
useradd -r -g mysql8 -s /sbin/nologin mysql8
mkdir -p /data/mysql8/data
chown -R mysql8:mysql8 /data/mysql8
chown -R mysql8:mysql8 /usr/local/mysql8
3. 初始化数据库
/usr/local/mysql8/bin/mysqld --initialize 
--user=mysql8 
--basedir=/usr/local/mysql8 
--datadir=/data/mysql8/data 
--socket=/tmp/mysql8.sock

记下生成的临时密码(最后一行)

4. 配置 my.cnf(独立配置文件)

创建 /etc/my8.cnf

[client]
port = 3307
socket = /tmp/mysql8.sock

[mysqld]
port = 3307
socket = /tmp/mysql8.sock
pid-file = /data/mysql8/mysql8.pid
basedir = /usr/local/mysql8
datadir = /data/mysql8/data
user = mysql8

# 基本设置
skip-name-resolve
lower_case_table_names = 1
character-set-server = utf8mb4
default-storage-engine = INNODB

# 日志
log-error = /data/mysql8/error.log
5. 创建服务启动脚本

创建 /lib/systemd/system/mysql8.service

[Unit]
Description=MySQL 8.0 Server
After=network.target

[Service]
Type=forking
User=mysql8
Group=mysql8
PIDFile=/data/mysql8/mysql8.pid
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/etc/my8.cnf
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -SIGTERM $MAINPID
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
6. 启用并启动服务
systemctl daemon-reload
systemctl enable mysql8
systemctl start mysql8

检查是否运行:

ss -tlnp | grep 3307

步骤 3:安全设置(首次登录修改密码)

/usr/local/mysql8/bin/mysql -u root -p -S /tmp/mysql8.sock -P 3307

进入后修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;

✅ 四、连接与使用

  • MySQL 5.7(宝塔):端口 3306,Socket /tmp/mysql.sock
  • MySQL 8.0(手动):端口 3307,Socket /tmp/mysql8.sock

你可以通过 phpMyAdmin、命令行或程序分别连接不同端口。


✅ 五、注意事项

  1. 端口不能冲突:确保两个 MySQL 使用不同端口(如 3306 和 3307)
  2. Socket 文件路径不同
  3. 数据目录分开
  4. 服务名不同(避免 systemctl 冲突)
  5. 防火墙开放端口(如需远程访问)
  6. 宝塔不会管理第二个 MySQL,需手动维护备份、升级等

✅ 六、可选:在宝塔中添加快捷入口(非必须)

你可以在宝塔的「数据库」页面手动添加远程数据库:

  1. 数据库 → 添加远程数据库
  2. 填写 127.0.0.1:3307,用户名 root,密码
  3. 即可在面板中管理 MySQL 8.0(部分功能受限)

✅ 总结

版本 安装方式 端口 管理方式
MySQL 5.7 宝塔一键安装 3306 完全由宝塔管理
MySQL 8.0 手动安装 3307 手动 systemctl 管理

如你需要多个版本用于开发测试,此方案非常实用。建议做好备份和文档记录。

如有需要,我可以提供一键安装脚本模板。