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

来源:这里教程网 时间:2026-02-28 20:28:19 作者:

在一台服务器或开发机上安装多个版本的 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 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 版本能稳定共存。操作时注意权限和路径准确性,避免混淆版本导致误操作。

相关推荐