在宝塔面板中安装不同版本的 MySQL,可以通过以下几种方式实现。由于宝塔面板默认只允许同时安装一个数据库环境(如 MySQL 或 MariaDB),但你可以通过以下方法来安装多个 MySQL 版本或切换版本。
✅ 方法一:使用宝塔内置功能切换 MySQL 版本(推荐新手)
注意:此方法是 替换当前数据库版本,不能共存多个版本。
步骤:
-
登录宝塔面板。
-
进入左侧菜单 “软件商店”。
-
找到已安装的 MySQL(例如 MySQL 5.7)。
-
点击右侧的 “设置” → “版本” 标签页。
-
在这里可以选择其他版本进行切换,如:
- MySQL 5.6
- MySQL 5.7
- MySQL 8.0
- MariaDB 10.1 / 10.2 / 10.3 / 10.5 / 10.6 等
-
选择你需要的版本后,点击 “切换” 按钮。
-
宝塔会自动备份数据并执行版本切换(建议提前手动备份重要数据库!)
⚠️ 注意:
- 切换版本可能导致兼容性问题(如 MySQL 8.0 的密码认证方式变更)。
- 不支持跨大版本无缝升级时可能失败,需手动处理。
✅ 方法二:手动编译安装另一个 MySQL 实例(高级用户)
如果你想在同一台服务器上运行 多个 MySQL 版本(例如同时运行 MySQL 5.7 和 MySQL 8.0),需要手动部署第二个实例,不能通过宝塔图形界面直接实现。
基本思路:
- 使用不同的端口(如 3306 和 3307)
- 不同的数据目录(如
/www/server/mysql8/) - 不同的配置文件和启动脚本
示例:手动安装 MySQL 8.0 并与宝塔自带的 MySQL 5.7 共存
# 1. 下载 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/
mv /usr/local/mysql-8.0.36-linux-glibc2.12-x86_64 /usr/local/mysql8
# 2. 创建用户和目录
useradd -r -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
--port=3307
# 记住生成的临时密码!
# 4. 配置 my.cnf(新建 /etc/my8.cnf)
cat > /etc/my8.cnf << 'EOF'
[client]
port = 3307
socket = /tmp/mysql8.sock
[mysqld]
port = 3307
socket = /tmp/mysql8.sock
basedir = /usr/local/mysql8
datadir = /data/mysql8/data
pid-file = /data/mysql8/data/mysql8.pid
user = mysql8
log-error = /data/mysql8/data/error.log
server-id = 2
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF
# 5. 启动 MySQL 8.0
/usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my8.cnf &
# 6. 设置开机启动(可选)
# 添加到 /etc/rc.d/rc.local 或使用 systemd 编写服务脚本
🔐 登录方式:
/usr/local/mysql8/bin/mysql -u root -p -P 3307 -h 127.0.0.1 --protocol=tcp📌 注意:这个实例不会出现在宝塔面板中,需手动管理。
✅ 方法三:使用 Docker 安装多版本 MySQL(推荐开发者)
这是最灵活、安全的方式,适合开发测试环境。
示例:运行 MySQL 5.6 和 8.0 两个容器
# 安装 Docker(若未安装)
curl -fsSL https://get.docker.com | bash
# 启动 MySQL 5.6
docker run -d
--name mysql56
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=yourpassword
-v /mydata/mysql56:/var/lib/mysql
mysql:5.6
# 启动 MySQL 8.0(映射到 3307 端口避免冲突)
docker run -d
--name mysql80
-p 3307:3306
-e MYSQL_ROOT_PASSWORD=yourpassword
-v /mydata/mysql80:/var/lib/mysql
mysql:8.0
然后你可以在应用中连接:
localhost:3306→ MySQL 5.6localhost:3307→ MySQL 8.0
💡 优点:隔离性好、易于管理、不影响宝塔主环境。
❌ 不支持的功能
- 宝塔面板目前 不支持图形化同时安装多个 MySQL 版本
- 无法通过“软件商店”添加两个 MySQL 实例
✅ 推荐方案总结
| 目的 | 推荐方法 |
|---|---|
| 只想换版本(不共存) | 使用宝塔内置“版本切换”功能 |
| 需要多个版本共存 | 手动安装或使用 Docker |
| 开发/测试用途 | 强烈推荐 Docker 方式 |
如有进一步需求(如配置远程访问、权限设置、Docker Compose 脚本等),欢迎继续提问!
云服务器