如何安装多版本mysql共存_mysql多版本共存安装方法

1次阅读

多版本mysql可在同一服务器共存,需确保端口、数据目录、套接字和配置文件独立。1. 使用官方二进制包分别解压到不同目录;2. 为每个版本创建独立配置文件(如my-5.7.cnf、my-8.0.cnf),指定不同端口、socket、datadir等;3. 创建对应数据目录并授权;4. 用各自mysqld初始化数据目录;5. 通过–defaults-file启动各实例,并用对应客户端连接。建议避免包管理器安装以防冲突。

如何安装多版本mysql共存_mysql多版本共存安装方法

在一台服务器或开发机上安装多个版本的 MySQL 共存,常见于需要测试不同版本兼容性或维护多个项目的情况。实现多版本共存的关键是避免端口、数据目录、套接字文件和配置文件冲突。下面介绍一种基于 linux 系统(以 centos/ubuntu 为例)的多版本 MySQL 安装方法。

选择安装方式:推荐使用二进制包

为了便于管理多个版本,建议使用官方提供的二进制压缩包(tar.gz)方式安装,而不是通过系统包管理器(如 yum 或 apt),因为后者容易覆盖或冲突。

  • MySQL 官方下载页面 获取所需版本的 Linux-Generic 二进制包(例如:mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 和 mysql-8.0.36-linux-glibc2.12-x86_64.tar.gz)
  • 将不同版本解压到独立目录,例如:
    /usr/local/mysql-5.7
    /usr/local/mysql-8.0
  • 创建软链接方便调用(可选):
    ln -s /usr/local/mysql-5.7 /usr/local/mysql57
    ln -s /usr/local/mysql-8.0 /usr/local/mysql80

为每个版本配置独立的配置文件和数据目录

每个 MySQL 实例必须使用不同的配置文件、数据目录、端口和 socket 文件,防止冲突。

  • 为每个版本创建独立的配置文件,例如:
    /etc/my-5.7.cnf
    /etc/my-8.0.cnf
  • 示例 my-5.7.cnf 内容:

[mysqld]
port=3307
socket=/tmp/mysql-5.7.sock
basedir=/usr/local/mysql-5.7
datadir=/var/lib/mysql-5.7
pid-file=/var/lib/mysql-5.7/mysqld.pid
server-id=1
log-Error=/var/log/mysql-5.7.log

  • 示例 my-8.0.cnf 内容:

[mysqld]
port=3308
socket=/tmp/mysql-8.0.sock
basedir=/usr/local/mysql-8.0
datadir=/var/lib/mysql-8.0
pid-file=/var/lib/mysql-8.0/mysqld.pid
server-id=2
log-error=/var/log/mysql-8.0.log

  • 提前创建数据目录并授权:
    mkdir /var/lib/mysql-5.7 /var/lib/mysql-8.0
    chown -R mysql:mysql /var/lib/mysql-5.7 /var/lib/mysql-8.0

初始化各自的数据目录

使用对应版本的 mysqld 命令进行初始化,生成 root 密码或设置空密码(根据需求)。

如何安装多版本mysql共存_mysql多版本共存安装方法

百度智能云·曦灵

百度旗下的AI数字人平台

如何安装多版本mysql共存_mysql多版本共存安装方法 102

查看详情 如何安装多版本mysql共存_mysql多版本共存安装方法

  • 初始化 MySQL 5.7:
  • /usr/local/mysql-5.7/bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql-5.7 –datadir=/var/lib/mysql-5.7

  • 初始化 MySQL 8.0:
  • /usr/local/mysql-8.0/bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql-8.0 –datadir=/var/lib/mysql-8.0

  • 记录输出中的临时 root 密码,后续登录时使用

分别启动与连接不同版本实例

使用 –defaults-file 指定配置文件来启动每个实例。

  • 启动 MySQL 5.7:
  • /usr/local/mysql-5.7/bin/mysqld –defaults-file=/etc/my-5.7.cnf &

  • 启动 MySQL 8.0:
  • /usr/local/mysql-8.0/bin/mysqld –defaults-file=/etc/my-8.0.cnf &

  • 连接 MySQL 5.7:
  • /usr/local/mysql-5.7/bin/mysql -u root -p -S /tmp/mysql-5.7.sock

  • 连接 MySQL 8.0:
  • /usr/local/mysql-8.0/bin/mysql -u root -p -S /tmp/mysql-8.0.sock

如果希望开机自启,可以为每个实例编写 systemd 服务脚本(如 mysql-57.service 和 mysql-80.service),指定各自的配置文件和启动命令。

基本上就这些。只要保证端口、数据目录、socket、配置文件彼此独立,多个 MySQL 版本能稳定共存。操作时注意权限和路径准确性,避免混淆版本导致误操作。

text=ZqhQzanResources