目录
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
很好。
现在就算是完全成功了。