Linux系统中MySQL 5.7与MySQL 8.0的并行安装与配置详解

作者:有好多问题2024.04.02 21:23浏览量:64

简介:本文将详细指导如何在Linux系统中同时安装、配置和使用MySQL 5.7与MySQL 8.0,确保两者互不干扰,满足不同的项目需求。

在Linux系统中,有时我们可能需要同时运行不同版本的MySQL数据库,以满足不同的项目需求。本文将指导您如何在同一台服务器上安装、配置和使用MySQL 5.7与MySQL 8.0,确保两者能够并行运行,互不干扰。

一、安装MySQL 5.7

  1. 下载MySQL 5.7的官方YUM源

访问MySQL官方下载页面,获取适用于Linux的MySQL 5.7的YUM源安装包,并在您的Linux服务器上执行以下命令进行安装:

  1. sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
  1. 安装MySQL 5.7

使用YUM命令安装MySQL 5.7服务器:

  1. sudo yum install mysql-community-server
  1. 启动MySQL 5.7服务
  1. sudo systemctl start mysqld
  2. sudo systemctl enable mysqld
  1. 设置MySQL 5.7的root密码(首次启动后会生成一个临时密码):
  1. sudo grep 'temporary password' /var/log/mysqld.log
  2. sudo mysql -uroot -p
  3. ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';

二、安装MySQL 8.0

  1. 下载MySQL 8.0的官方YUM源

同样访问MySQL官方下载页面,获取适用于Linux的MySQL 8.0的YUM源安装包,并在您的Linux服务器上执行以下命令进行安装:

  1. sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
  1. 安装MySQL 8.0

使用YUM命令安装MySQL 8.0服务器:

  1. sudo yum install mysql-community-server
  1. 启动MySQL 8.0服务

由于MySQL 8.0的服务名与MySQL 5.7不同,因此需要使用不同的命令启动:

  1. sudo systemctl start mysqld8
  2. sudo systemctl enable mysqld8
  1. 设置MySQL 8.0的root密码(同样会生成一个临时密码):
  1. sudo grep 'temporary password' /var/log/mysqld8.log
  2. sudo mysql -uroot -p
  3. ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';

三、配置MySQL 5.7和MySQL 8.0并行运行

  1. 修改MySQL 5.7的配置文件(通常是/etc/my.cnf/etc/mysql/my.cnf):

[mysqld]部分下添加或修改以下配置,为MySQL 5.7指定一个不同的端口和数据目录:

  1. [mysqld]
  2. port = 3306
  3. datadir = /var/lib/mysql57
  4. socket = /var/lib/mysql57/mysql.sock
  1. 修改MySQL 8.0的配置文件(通常是/etc/my.cnf.d/mysqld.cnf):

[mysqld]部分下添加或修改以下配置,为MySQL 8.0指定一个不同的端口和数据目录:

  1. [mysqld]
  2. port = 3307
  3. datadir = /var/lib/mysql80
  4. socket = /var/lib/mysql80/mysql.sock
  1. 重启MySQL服务
  1. sudo systemctl restart mysqld
  2. sudo systemctl restart mysqld8

四、使用MySQL 5.7和MySQL 8.0

现在,您可以通过指定不同的端口来连接MySQL 5.7和MySQL 8.0了。例如,使用命令行客户端连接MySQL 5.7:

  1. mysql -h localhost -P 3306 -uroot -p

连接MySQL 8.0:

```bash
mysql -h localhost -P 3307 -uroot -