在宝塔面板中安装两个版本的 MySQL 是可以实现的,但需要手动操作并注意端口、数据目录和服务名等配置,避免冲突。以下是详细步骤:
✅ 一、前提说明
宝塔默认只支持安装一个数据库实例(通过软件商店一键安装),但你可以:
- 使用宝塔安装一个版本(如 MySQL 5.7)
- 手动编译或通过其他方式安装另一个版本(如 MySQL 8.0 或 MariaDB)
⚠️ 注意:不能通过宝塔图形界面直接安装两个 MySQL,需手动操作第二个。
✅ 二、推荐方案:宝塔装一个 + 手动装另一个
示例:
- 第一个:通过宝塔安装 MySQL 5.7
- 第二个:手动安装 MySQL 8.0
✅ 三、具体操作步骤
步骤 1:通过宝塔安装第一个 MySQL(如 5.7)
- 登录宝塔面板
- 进入「软件商店」
- 找到 MySQL 5.7,点击“安装”
- 等待安装完成
安装路径一般为:
/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、命令行或程序分别连接不同端口。
✅ 五、注意事项
- 端口不能冲突:确保两个 MySQL 使用不同端口(如 3306 和 3307)
- Socket 文件路径不同
- 数据目录分开
- 服务名不同(避免 systemctl 冲突)
- 防火墙开放端口(如需远程访问)
- 宝塔不会管理第二个 MySQL,需手动维护备份、升级等
✅ 六、可选:在宝塔中添加快捷入口(非必须)
你可以在宝塔的「数据库」页面手动添加远程数据库:
- 数据库 → 添加远程数据库
- 填写
127.0.0.1:3307,用户名root,密码 - 即可在面板中管理 MySQL 8.0(部分功能受限)
✅ 总结
| 版本 | 安装方式 | 端口 | 管理方式 |
|---|---|---|---|
| MySQL 5.7 | 宝塔一键安装 | 3306 | 完全由宝塔管理 |
| MySQL 8.0 | 手动安装 | 3307 | 手动 systemctl 管理 |
如你需要多个版本用于开发测试,此方案非常实用。建议做好备份和文档记录。
如有需要,我可以提供一键安装脚本模板。
云知识