mysql离线安装如何安装多个版本_mysql同一机器多版本离线安装方法

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

在没有网络的环境下,在同一台机器上安装多个 MySQL 版本是可行的,适用于开发测试或版本兼容性验证。关键在于避免端口、数据目录、配置文件和服务名冲突。以下是具体操作方法。

1. 准备离线安装包

从 MySQL 官网下载所需版本的离线安装包(如 .tar.gz 或 .zip),推荐使用通用二进制包(不依赖系统包管理器)。例如:

mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz mysql-8.0.36-linux-glibc2.17-x86_64.tar.gz

将这些包拷贝到目标机器,解压到不同目录,比如:

/usr/local/mysql-5.7
/usr/local/mysql-8.0

2. 创建独立运行环境

每个版本需要独立的数据目录、配置文件和用户权限。

创建专用用户(可共用 mysql 用户):
useradd -r -s /bin/false mysql
为每个版本建立数据目录:
mkdir /data/mysql-5.7 /data/mysql-8.0

chown mysql:mysql /data/mysql-*
初始化数据(以 MySQL 5.7 为例):
/usr/local/mysql-5.7/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7 --datadir=/data/mysql-5.7
MySQL 8.0 同理,替换路径即可。

3. 配置独立 my.cnf 文件

每个实例使用不同的配置文件,避免端口和 socket 冲突。

创建

/etc/my-5.7.cnf

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

创建

/etc/my-8.0.cnf

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

4. 启动与管理各实例

使用 mysqld_safe 或直接调用 mysqld 启动,指定配置文件。

启动 MySQL 5.7:
/usr/local/mysql-5.7/bin/mysqld_safe --defaults-file=/etc/my-5.7.cnf &
启动 MySQL 8.0:
/usr/local/mysql-8.0/bin/mysqld_safe --defaults-file=/etc/my-8.0.cnf &
连接时指定端口:
mysql -u root -p -P 3307 -h 127.0.0.1
(5.7)
mysql -u root -p -P 3308 -h 127.0.0.1
(8.0)

如需设置开机自启,可编写 systemd 服务脚本,分别命名为 mysql-5.7.service 和 mysql-8.0.service,注意服务名和路径隔离。

基本上就这些。只要路径、端口、配置分离清楚,多版本共存很稳定。注意防火墙和 SELinux 不要拦截本地端口。离线安装的核心是提前准备好所有依赖和包,不依赖在线源。

相关推荐