在宝塔面板中安装两个版本的 MySQL 是可行的,但需要手动操作并注意端口、数据目录和配置文件的隔离,避免冲突。以下是详细步骤:
✅ 前提说明:
- 宝塔默认只允许通过图形界面安装一个数据库(如 MySQL 5.7 或 MySQL 8.0)。
- 要安装两个版本(例如:MySQL 5.7 和 MySQL 8.0),需 手动编译或使用二进制包 安装第二个 MySQL 实例,并与宝塔管理的第一个实例区分开。
🛠️ 方案一:使用宝塔安装一个 + 手动安装另一个
推荐方式:
✅ 使用宝塔安装第一个 MySQL(比如 MySQL 5.7)
✅ 手动安装第二个 MySQL(比如 MySQL 8.0)
步骤 1:用宝塔安装第一个 MySQL
- 登录宝塔面板
- 进入「软件商店」
- 搜索
MySQL,选择你需要的一个版本(如 5.7) - 点击安装
默认监听端口:3306,数据目录:
/www/server/data
步骤 2:手动安装第二个 MySQL(如 MySQL 8.0)
① 下载 MySQL 8.0 二进制包(以 CentOS 为例)
# 创建安装目录
mkdir -p /usr/local/mysql8
# 下载 MySQL 8.0(替换为最新链接)
cd /tmp
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/mysql8 --strip-components=1
② 创建用户和权限
useradd -r -M -s /sbin/nologin mysql8
chown -R mysql8:mysql8 /usr/local/mysql8
③ 创建数据目录和配置文件
mkdir -p /www/server/data8
chown -R mysql8:mysql8 /www/server/data8
创建配置文件 /etc/my8.cnf:
[mysqld]
port=3307
socket=/tmp/mysql8.sock
pid-file=/www/server/data8/mysql.pid
basedir=/usr/local/mysql8
datadir=/www/server/data8
max_connections=200
bind-address=127.0.0.1
# 必要配置
skip-name-resolve
explicit_defaults_for_timestamp=true
lower_case_table_names=1
character-set-server=utf8mb4
default-storage-engine=INNODB
log-error=/www/server/data8/error.log
⚠️ 注意:
- 端口设为
3307(避免与 3306 冲突)- socket 文件路径不同
- 数据目录独立
④ 初始化数据库
/usr/local/mysql8/bin/mysqld
--defaults-file=/etc/my8.cnf
--initialize-insecure
--user=mysql8
--initialize-insecure:初始化空密码(测试环境可用,生产建议用--initialize并记下临时密码)
⑤ 创建 systemd 启动服务
创建服务文件:/etc/systemd/system/mysql8.service
[Unit]
Description=MySQL 8.0 Server
After=network.target
[Service]
Type=forking
User=mysql8
Group=mysql8
PIDFile=/www/server/data8/mysql.pid
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/etc/my8.cnf
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -SIGTERM $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
加载并启动服务:
systemctl daemon-reexec
systemctl enable mysql8
systemctl start mysql8
检查是否运行:
ps aux | grep mysql8
netstat -tlnp | grep 3307
⑥ 设置 root 密码(如果初始化为空)
/usr/local/mysql8/bin/mysql -S /tmp/mysql8.sock -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码';"
步骤 3:在宝塔中添加远程数据库(可选)
如果你想在宝塔面板中管理这个 MySQL 8.0 实例:
- 进入宝塔 → 数据库 → 添加远程数据库
- 填写:
- 主机:
127.0.0.1 - 端口:
3307 - 用户名:
root - 密码:你设置的密码
- 主机:
- 保存即可在面板中管理该实例
🔐 安全建议
- 第二个 MySQL 实例不要绑定
0.0.0.0,仅限本地访问(bind-address=127.0.0.1) - 防火墙开放 3307(如需远程连接)
- 定期备份两个实例的数据
❌ 不推荐的方式
- 直接在宝塔多次安装 MySQL —— 会覆盖或报错
- 共用数据目录或端口 —— 导致冲突崩溃
✅ 总结
| 功能 | 宝塔安装(MySQL 5.7) | 手动安装(MySQL 8.0) |
|---|---|---|
| 端口 | 3306 | 3307 |
| 数据目录 | /www/server/data | /www/server/data8 |
| 管理方式 | 宝塔图形界面 | 命令行 / 宝塔远程数据库 |
| 自启 | 自动 | systemd 服务 |
如有需要,我可以提供一键安装脚本或 Docker 替代方案(更简单)。欢迎继续提问!
CLOUD云知道