【MySQL高阶】9.在一台机器上运行多个MySQL实例
2026/6/1 9:12:59 网站建设 项目流程

文章目录

  • 5.在一台机器上运行多个MySQL实例
    • 5.1 使用MySQL Installer安装MySQL实例
    • 5.2 配置不同的版本选项文件
      • 5.2.1 指定基本目录
      • 5.2.2 设置数据目录
      • 5.2.3 设置端口号
      • 5.2.4 设置日志目录
      • 5.2.5 其他设置
    • 5.3 在多服务器环境中使用客户端程序
    • 5.4 介绍一下你知道的MySQL服务器配置文件的选项

5.在一台机器上运行多个MySQL实例

  • 有时候我们希望在一台机器上运行多个MySQL实例,比如在开发环境测试新的MySQL版本,同时又要保证原有的版本不受影响;MySQL允许在一台机器上安装不同版本的发行版,比如同时运行5.78.0版本,只是要做一些相应的配置。
  • 为了降低配置难度,本节将在Windows系统中使用安装器演示配置多个MySQL实例的方法。

5.1 使用MySQL Installer安装MySQL实例

我这里演示,随便下一个了:

mysql-9.7.0-winx64.msi

先看一下没安装新版本前:

下载后先关闭本机的MySQL服务:

  1. 右键我的电脑,选择管理

  1. 停止该服务

  1. 双击安装包,点击安装:

一路next,到这里选择自定义

然后光标放到MySQL Server上,点击下面的Browse,注意路径不要放到原来的MySQL其他版本文件夹里面。

一路next,然后install,然后finish

接着点击next,直到出现这个页面:

继续next,注意下面的端口号和后面那个不能使用默认的,要换一下,不然以后会冲突:

继续next,输入密码后next

继续next,这个页面的两个可以勾选可以不勾选

继续next,选择Execute,进入安装,然后next,点击finish

进入计算机管理,刷新一下,可以看到新出现了MySQL97,一定要保证是手动的。

再次启动MySQL80,可以看到两个MySQL服务同时开启。

注意:

  1. 日志等其他自定义的路径按版本号区分
  2. 千万不要让两个不同的服务同时修改同一个目录下的同一个文件

下载不同版本的MySQL Installer,并完成安装,按照安装器的提示完成安装即可,安装过程中需要注意以下几点:

  • 为不同的版本指定不同的安装目录,安装完成后如下所示:


5.2 配置不同的版本选项文件

不同的MySQL版本启动时,会在默认的数据目录下读取相应版本的my.ini文件,比如9.7版本启动时会读取C:\ProgramData\MySQL\MySQL Server 9.7\my.ini文件,8.0版本启动时会读取C:\ProgramData\MySQL\MySQL Server 8.0\my.ini文件,为了让不同版本的实例在启动时避免冲突,比如端口冲突,需要对不同版本的实例进行一些差异配置。

查看端口:

可以看到33063308都启动了。

C:\Users\YuDukai>netstat -an 活动连接 协议 本地地址 外部地址 状态 ...... TCP [::]:445 [::]:0 LISTENING TCP [::]:1030 [::]:0 LISTENING TCP [::]:3306 [::]:0 LISTENING TCP [::]:3308 [::]:0 LISTENING TCP [::]:7680 [::]:0 LISTENING ......

5.2.1 指定基本目录

  • 使用选项--basedir=dir_name为每个实例指定基本目录,通常指定为安装目录,不同的实例会自动使用不同的数据目录、日志文件和PID文件,这些文件的默认值都是相对于基本目录的,当然也可以自定义这些文件:
# C:\ProgramData\MySQL\MySQL Server 9.7\my.ini # 路径中的空格要用双引号引起来 [mysqld] # mysqld节点 basedir="C:/Program Files/MySQL/MySQL Server 9.7" #5.7版本的自定义的基本目录 # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 basedir="C:/Program Files/MySQL/MySQL Server 8.0" #8.0版本的自定义的基本目录

5.2.2 设置数据目录

  • 使用安装器安装成功后不同的版本的数据目录已经自动生成,如果要自定义数据目录,那么也需要按不同的版本分别设置别其他不同的目录
  • MySQL服务正常停止的状态下,复制C:\ProgramData\MySQL\MySQL Server x.x\Data目录到目标位置即可
  • 在对应版本的my.ini文件中指定自定义数据目录,通过指定--datadir=dir_name实现
# C:\ProgramData\MySQL\MySQL Server 9.7\my.ini [mysqld] # mysqld节点 datadir=D:/database/MySQL/data9.7 #9.7版本的自定义的数据目录 # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 datadir=D:/database/MySQL/data8.0 #8.0版本的自定义的数据目录

注意:

永远不要让两台服务器对同一个数据库执行数据更新


5.2.3 设置端口号

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

# C:\ProgramData\MySQL\MySQL Server 9.7\my.ini [mysqld] # mysqld节点 port=3308 # 监听的端口 # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 port=3306 # 监听的端口

5.2.4 设置日志目录

默认情况下如果开启一般查询日志,慢查询日志,错误日志,二进制日志,会在默认的数据目录下生成日志文件,也可以自定义目录:

Windows下要么用\\,要么用/

# C:\ProgramData\MySQL\MySQL Server 9.7\my.ini [mysqld] # mysqld节点 # 日志输入目标 log-output=FILE # 一般查询日志 general-log=1 general_log_file=D:/log/MySQL/9.7/general.log # 慢查询日志 slow-query-log=1 slow_query_log_file=D:/log/MySQL/9.7/slow_query.log long_query_time=10 # 错误日志 log-error=D:/log/MySQL/9.7/error_log.err #二进制日志基本名 log-bin=D:/log/MySQL/9.7/bin_log ################################################################### # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 # 日志输入目标 log-output=FILE # 一般查询日志 general-log=1 general_log_file=D:/log/MySQL/8.0/general.log # 慢查询日志 slow-query-log=1 slow_query_log_file=D:/log/MySQL/8.0/slow_query.log long_query_time=10 # 错误日志 log-error=D:/log/MySQL/8.0/error_log.err #二进制日志基本名 log-bin=D:/log/MySQL/8.0/bin_log

5.2.5 其他设置

还有一些其他设置可以通过选项文件指定,比如服务器Id,临时文件目录等等:

# C:\ProgramData\MySQL\MySQL Server 5.7\my.ini [mysqld] # mysqld节点 server-id=57 # 服务器Id,随意指定一个值,不重复即可 tmpdir=D:/temp/mysql5.7 #临时文件目录 # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 server-id=1 # 服务器Id,随意指定一个值,不重复即可 tmpdir=D:/temp/mysql8.0 # 临时文件目录

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

使用mysql客户端程序,根据不同版本的MySQL实例配置的IP和端口号,指定相应的选项,连接不同的MySQL服务器。

指定端口通过--port=port_number选项实现。

如果绑定了不同的网卡通过--host=host_name选项实现,如果不指定--host选项,则使用默认值loclhost

最后,玩完之后,记得把多的MySQL关掉。


5.4 介绍一下你知道的MySQL服务器配置文件的选项

这个问题主要考察选项的使用,回答这个问题可以先总体描述选项文件的使用场景,再介绍几个常见的选项即可

  1. 选项文件主要作用是设置MySQL服务常用的系统变量初始值,以便服务器启动时自动读取;
  2. 选项文件中可以用 [程序名] 的形式分别为不同的程序指定具体选项的值,也可以用[client][server]的形式分别指定客户端程序和服务器程序公共配置。
  3. 常见的选项有,客户端和服务器使用的字符集,客户端默认的用户名和密码,服务器的排序规则,服务器的端口号,自定义数据目录的路径,日志文件的路径,服务器允许的最大连接数,还有一些关于存储引擎的选项也可以用于性能调优,比如关于INNODB的选项,等等。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询