奋斗
努力

linux宝塔面板安装两个mysql版本?

云计算

在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)。

注意事项

  1. 端口冲突:确保两个MySQL使用不同端口(如3306和3307)。
  2. 数据目录分离:避免共享datadir
  3. 资源占用:同时运行两个MySQL会增加内存和CPU负载。
  4. 备份隔离:分别备份两个实例的数据。
  5. 版本兼容性:部分应用可能不兼容老版本MySQL。

通过以上步骤,你可以在宝塔环境中实现多版本MySQL共存。如需更简单的管理,可考虑使用Docker容器化部署各个MySQL实例。

未经允许不得转载:云服务器 » linux宝塔面板安装两个mysql版本?