宝塔如何装两个版本MYSQL?

云计算

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


✅ 前提说明:

  • 宝塔默认只允许通过图形界面安装一个数据库(如 MySQL 5.7 或 MySQL 8.0)。
  • 要安装两个版本(例如:MySQL 5.7 和 MySQL 8.0),需 手动编译或使用二进制包 安装第二个 MySQL 实例,并与宝塔管理的第一个实例区分开。

🛠️ 方案一:使用宝塔安装一个 + 手动安装另一个

推荐方式:
✅ 使用宝塔安装第一个 MySQL(比如 MySQL 5.7)
✅ 手动安装第二个 MySQL(比如 MySQL 8.0)


步骤 1:用宝塔安装第一个 MySQL

  1. 登录宝塔面板
  2. 进入「软件商店」
  3. 搜索 MySQL,选择你需要的一个版本(如 5.7)
  4. 点击安装

默认监听端口: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 实例:

  1. 进入宝塔 → 数据库 → 添加远程数据库
  2. 填写:
    • 主机:127.0.0.1
    • 端口:3307
    • 用户名:root
    • 密码:你设置的密码
  3. 保存即可在面板中管理该实例

🔐 安全建议

  • 第二个 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 替代方案(更简单)。欢迎继续提问!