在Linux宝塔面板中安装并同时运行两个不同版本的MySQL是可行的,但需要手动配置以避免端口和服务冲突。以下是详细步骤和注意事项:
1. 安装第一个MySQL(通过宝塔面板)
- 在宝塔面板的「软件商店」直接安装默认版本的MySQL(如5.7或8.0)。
- 安装完成后,记下默认配置:
- 数据目录:
/www/server/data - 配置文件:
/etc/my.cnf - 端口:
3306 - 服务名:
mysqld
- 数据目录:
2. 手动安装第二个MySQL
2.1 下载二进制包
从MySQL官网下载所需版本的二进制包(如5.6或8.1):
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.51-linux-glibc2.12-x86_64 /usr/local/mysql5.6
2.2 创建数据目录和用户
mkdir -p /data/mysql5.6
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /data/mysql5.6
2.3 初始化数据库
cd /usr/local/mysql5.6
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql5.6
2.4 修改配置文件
创建新的配置文件(如/etc/my5.6.cnf),确保与默认MySQL配置不冲突:
[mysqld]
port=3307 # 使用不同端口
socket=/tmp/mysql5.6.sock
datadir=/data/mysql5.6
log-error=/data/mysql5.6/error.log
pid-file=/data/mysql5.6/mysql.pid
2.5 启动第二个MySQL
/usr/local/mysql5.6/bin/mysqld_safe --defaults-file=/etc/my5.6.cnf &
2.6 设置开机自启
创建Systemd服务文件(如/etc/systemd/system/mysql5.6.service):
[Unit]
Description=MySQL 5.6 Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql5.6/bin/mysqld --defaults-file=/etc/my5.6.cnf
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用服务:
systemctl daemon-reload
systemctl enable mysql5.6
systemctl start mysql5.6
3. 验证运行
- 检查进程:
ps aux | grep mysqld -
连接测试:
# 默认MySQL mysql -uroot -p -P3306 # 第二个MySQL mysql -uroot -p -P3307 -S /tmp/mysql5.6.sock
4. 宝塔面板整合
- 添加第二个MySQL到面板:
宝塔不支持直接管理多个MySQL实例,但可以通过「计划任务」或「自定义脚本」管理第二个MySQL。 - 防火墙放行端口:
在宝塔的「安全」页面放行第二个MySQL的端口(如3307)。
注意事项
- 端口冲突:确保两个MySQL使用不同端口(如3306和3307)。
- 数据目录分离:避免共享
datadir。 - 资源占用:同时运行两个MySQL会增加内存和CPU负载。
- 备份隔离:分别备份两个实例的数据。
- 版本兼容性:部分应用可能不兼容老版本MySQL。
通过以上步骤,你可以在宝塔环境中实现多版本MySQL共存。如需更简单的管理,可考虑使用Docker容器化部署各个MySQL实例。
云服务器