【MySQL进阶】在一台机器上运行多个MySQL实例

发布于:2025-07-09 ⋅ 阅读:(19) ⋅ 点赞:(0)

目录

1.使用MySQL Installer安装MySQL实例

1.1.去官网下载MySQL Installer

1.2.停止mysql服务 

1.3.为不同的版本指定不同的安装目录

2.配置不同版本的选项文件

2.1.修改数据目录

2.2.修改基本目录

2.3.修改端口号

2.4.设置⽇志⽬录

2.5.配置临时目录

2.6.修改绑定地址

 2.7.检验是否配置成功

3.在多服务器环境中使用客户端程序

3.1.配置MySQL环境变量

3.2.连接


有时候我们希望在一台机器上运行多个MySQL实例,比如在开发环境测试新的MySQL版本,同时又要保证原有的版本不受影响;MySQL允许在一台机器上安装不同版本的发行版,比如同时运行5.7和8.0版本,只是要做一些相应的配置。

为了降低配置难度,本节将在Windows系统中使用安装器演示配置多个MySQL实例的方法。

  • 一个mysql服务对外提供服务需要端口号,所以两个mysql实例的端口号是不能相同的
  • 日志等其他自定义路径根据版本号区分
  • 千万不要让两个不同的服务同时修改同一个目录下的同一个文件 

1.使用MySQL Installer安装MySQL实例

1.1.去官网下载MySQL Installer

注意:我的电脑已经安装了mysql8.0

接下来我将下载不同版本的MySQL Installer,并完成安装,安装过程如下:

首先我们去官网:MySQL

 

1.2.停止mysql服务 

等待下载完成之后

我们先不要这么着急去安装,我们得先把原来的mysql8.0的服务给我停止掉,因为我们安装mysql5.7的时候它会自动启动去加载那些配置文件啥的。

所以为了防止冲突,所以我们需要停止本机正在运行的mysql服务。 

 我们点击停止按钮,一定要出现下面这个情况,才算是停止成功了啊!!

那么在Linux下,我们只需执行

systemctl stop mysql

 即可停止mysq服务

1.3.为不同的版本指定不同的安装目录

首先我们得知道我们机器上已经安装好的mysql8.0的安装路径是哪一个?

我们可以

 

这个D:\MySQL\MySQL Server 8.0\就是我们mysql8.0的安装路径。我们这次安装千万不要安装到这里来了。

接着我们打开我们刚刚下载的那个mysql5.7的安装包

接下来是至关重要的一步,指定安装路径

mysql官方其实很恶心,为了阻止我们更改安装路径煞费苦心。

  

这里就能更改我们的安装路径了,注意不能和原来那个mysql8.0的安装路径重复。

接着我们点击OK即可,然后点击next

我们点击next 

 点击Execute

点击next 

这里端口号不要再写3306了,必须改成别的。  

在这里我们输入我们的密码

 

 自启动一定要关闭啊!!!

 

直接next即可 

 点击Execute,等待完成,然后点击Finish

这个时候就安装完成了,我们去看看

看看它的安装路径是啥

没有问题,这个安装路径和mysql8.0区分开来了。

我们设置的端口号是3308,我们可以去看看

很好,没有问题。 

这个时候我们再去把停止的mysql8.0进行启动一下

现在mysql8.0和mysql5.7在同时运行了。我们再看看端口号

 都没有问题。现在就安装完成了。我们现在这个机器就已经运行了mysql5.7和mysql8.0了。

我们也可以去目录里面看看

2.配置不同版本的选项文件

        不同的MySQL版本启动时,会在默认的数据⽬录下读取相应版本的 my.ini ⽂件,⽐如5.7版本 启动时会读取D:\MySQL\MySQLServer5.7\my.ini⽂件,8.0版本启动时会读取 D:\MySQL\MySQLServer8.0\my.ini⽂件,为了让不同版本的实例在启动时避免冲 突,⽐如端⼝冲突,需要对不同版本的实例进⾏⼀些差异配置。

2.1.修改数据目录

现在mysql8.0和mysql5.7的数据目录分别是D:\MySQL\MySQL Server 8.0\Data,D:\MySQL\MySQL Server 5.7\Data,我现在想要对它们进行集中管理,我想让这两个数据目录分别修改为下面这个情况。

# 因为路径中有空格,所以要⽤双引号引起来

# D:\MySQL\MySQL Server 5.7\my.ini
[mysqld]  # mysqld节点
datadir= "D:/MySQL/databases/data5.7" #5.7版本的⾃定义的基本⽬录


# D:\MySQL\MySQL Server 8.0\my.ini
[mysqld]  # mysqld节点
datadir= "D:/MySQL/databases/data8.0" #8.0版本的⾃定义的基本⽬录

但是修改数据目录可不仅仅只是修改配置文件这么简单。 我们往下看

首先我们创建D:/MySQL/databases/,

然后我们要去 将D:\MySQL\MySQL Server 8.0\Data,D:\MySQL\MySQL Server 5.7\Data

分别拷贝到这里然后分别改名为data8.0,data5.7。

好,我们现在就来修改我们的配置文件。


  • 修改MySQL8.0的配置文件

在配置选项之前,我们需要先备份一下我们的配置文件。

 

现在我们就可以去修改我们原来的配置文件了

 

 找到下面这个来

 修改datadir,改成D:/MySQL/databases/data8.0

 保存退出即可


  • 接下来来修改mysql5.7的

还是不要忘记了保存副本

然后我们进去修改一下

 

保存退出即可。

2.2.修改基本目录

 使⽤选项--basedir=dir_name 为每个实例指定基本⽬录,通常指定为安装⽬录,不同的实例 会⾃动使⽤不同的数据⽬录、⽇志⽂件和PID⽂件,这些⽂件的默认值都是相对于基本⽬录的,当 然也可以⾃定义这些⽂件:

# 路径中的空格要⽤双引号引起来

# D:\MySQL\MySQL Server 5.7\my.ini
[mysqld]  # mysqld节点
basedir= "D:\MySQL\MySQL Server 5.7" #5.7版本的⾃定义的基本⽬录


# D:\MySQL\MySQL Server 8.0\my.ini
[mysqld]  # mysqld节点
basedir= "D:\MySQL\MySQL Server 8.0" #8.0版本的⾃定义的基本⽬录

这个其实我们没必要改

2.3.修改端口号

通过选项--port 设置TCP/IP连接的端⼝号。如果主机有多个⽹络地址,通过设置 bind_address 系统变量指定不同侦听地址

# 路径中的空格要⽤双引号引起来

# D:\MySQL\MySQL Server 5.7\my.ini
[mysqld]  # mysqld节点
port=3308 #5.7版本的⾃定义的端口号


# D:\MySQL\MySQL Server 8.0\my.ini
[mysqld]  # mysqld节点
port=3306 #8.0版本的⾃定义的端口号

这个其实我们已经检查过了,就不说了。

2.4.设置⽇志⽬录

默认情况下如果开启⼀般查询⽇志,慢查询⽇志,错误⽇志,⼆进制⽇志,会在默认的数据⽬录下⽣ 成⽇志⽂件,也可以⾃定义⽬录。

首先我们需要准备下面这个目录


  • 对于MySQL8.0

我们发现系统自动开启了这些日志的选项

接下来我把这些换成下面这个 

[mysqld]  # MySQL 服务器核心配置节点
# ----- 日志输出目标设置 -----
log-output=FILE  # 指定所有日志输出到文件系统(非数据库表)

# ----- 一般查询日志配置 -----
general-log=0  # 关闭一般查询日志(记录所有客户端执行的SQL语句)
general_log_file=D:/MySQL/log/log8.0/general.log  # 一般查询日志存储路径

# ----- 慢查询日志配置 -----
slow-query-log=1  # 启用慢查询日志(记录执行时间过长的查询)
slow_query_log_file=D:/MySQL/log/log8.0/slow_query.log  # 慢查询日志存储路径
long_query_time=10  # 定义慢查询阈值(单位:秒,≥10秒的查询会被记录)

# ----- 错误日志配置 -----
log-error=D:/MySQL/log/log8.0/error_log.err  # 错误日志存储路径(记录服务启动/运行中的关键错误)

# ----- 二进制日志配置 -----
log-bin=D:/MySQL/log/log8.0/bin_log  # 二进制日志存储路径(用于主从复制和数据恢复)

保存即可。


  • 对于MySQL5.7

我们也是将其修改成下面这个

[mysqld]  # 服务器配置节点
# ----- 日志输出目标设置 -----
log-output=FILE  # 指定日志输出到文件(非表)

# ----- 一般查询日志配置 -----
general-log=0  # 禁用一般查询日志(记录所有SQL操作)
general_log_file=D:/MySQL/log/log5.7/general.log  # 一般查询日志存储路径

# ----- 慢查询日志配置 -----
slow-query-log=1  # 启用慢查询日志
slow_query_log_file=D:/MySQL/log/log5.7/slow_query.log  # 慢查询日志存储路径
long_query_time=10  # 定义慢查询阈值(执行时间≥10秒的查询)

# ----- 错误日志配置 -----
log-error=D:/MySQL/log/log5.7/error_log.err  # 错误日志存储路径(记录启动/运行错误)

# ----- 二进制日志配置 -----
log-bin=D:/MySQL/log/log5.7/bin_log  # 二进制日志存储路径(用于主从复制/数据恢复)

2.5.配置临时目录

mysql在运行过程中还是会产生很多临时文件,这些临时文件可不能乱放,所以我们需要对它们进行统一管理。

# 路径中的空格要⽤双引号引起来

# D:\MySQL\MySQL Server 5.7\my.ini
[mysqld]  # mysqld节点
tmpdir=D:/MySQL/temp/temp5.7


# D:\MySQL\MySQL Server 8.0\my.ini
[mysqld]  # mysqld节点
tmpdir=D:/MySQL/temp/temp8.0

首先我们需要准备这个目录 

然后我们就去配置一下,那具体过程我就不说了。

2.6.修改绑定地址

对于bind_address,还是很有必要修改的,这决定了我们能不能连接上mysql服务器

这个大家自己去修改即可。

 2.7.检验是否配置成功

现在我们就得去重新启动我们的mysql服务,看看有没有配置成功。

注意:如果重新启动不了,就说明我们配置失败了。就像下面这个情况

我们点击确定之后始终启动不了我们的mysql服务

这个时候要重新检查一下我们的配置过程是不是出问题了,包括路径的名称,选项等

这个时候我们还是需要去检查一下端口号有没有正常运行

没有问题,都在正常运行。

现在就正式的配置成功了。

3.在多服务器环境中使用客户端程序

3.1.配置MySQL环境变量

为了连接不同版本的mysql服务器,我们需要借助命令行工具。

但是如果我们不配置环境变量的话,就会出现下面这个情况

我们不能从任意位置访问mysql服务器

 这就需要我们去配置环境变量。


  • 1.找到MySQL的安装位置

一般默认的是C:\Program Files,我的是在D盘,这个没有很大要求

如果不记得自己安装的路径了,可以通过从“服务”中找到MySQL,点击“属性”即可看到安装路径

 我们可以先看看Mysql8.0的安装路径

 

我们只需要bin前面那一部分,即D:\MySQL\MySQL Server 8.0。这就是mysql8.0的安装路径。

至于mysql5.7的安装路径,则是D:\MySQL\MySQL Server 5.7


  • 2. 找到环境变量

点击电脑,选择属性,点击“高级系统设置”

变量名 变量值
MYSQL57_HOME D:\MySQL\MySQL Server 5.7
MYSQL80_HOME D:\MySQL\MySQL Server 8.0

系统变量的框框里点击新建,创建变量名MYSQL57_HOME,路径为安装MySQL5.7的目录下,即bin的上一层目录D:\MySQL\MySQL Server 5.7

系统变量的框框里点击新建,创建变量名MYSQL80_HOME,路径为安装MySQL8.0的目录下,即bin的上一层目录D:\MySQL\MySQL Server 8.0

 


  • 3.编辑path系统变量,将 %MYSQL80_HOME%\bin 和 %MYSQL57_HOME%\bin添加到path变量后

添加下面这两个即可 

然后按确定即可。

现在我们就可以使用cmd命令行来连接我们的mysql服务器了。

3.2.连接

使用mysql客户端程序,根据不同版本的MySQL实例配置的IP和端口号,指定相应的选项,连接不同的MySQL服务器。 指定端口通过--port=端口号选项实现, 如果绑定了不同的网卡通过--host=host_name选项实现, 如果不指定--host选项,则使用默认值localhost。

如果说我们想要连接mysql5.7版本的,我们的连接命令就应该是下面这样子

mysql --port=3308 -u root -p

 

 如果说我们想要连接mysql8.0版本的,我们的连接命令就应该是下面这样子

mysql --port=3306 -u root -p

很好。

现在就算是完全成功了。


网站公告

今日签到

点亮在社区的每一天
去签到