
文章目录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.7和8.0版本只是要做一些相应的配置。为了降低配置难度本节将在Windows系统中使用安装器演示配置多个MySQL实例的方法。5.1 使用MySQL Installer安装MySQL实例我这里演示随便下一个了mysql-9.7.0-winx64.msi先看一下没安装新版本前下载后先关闭本机的MySQL服务右键我的电脑选择管理停止该服务双击安装包点击安装一路next到这里选择自定义然后光标放到MySQL Server上点击下面的Browse注意路径不要放到原来的MySQL其他版本文件夹里面。一路next然后install然后finish。接着点击next直到出现这个页面继续next注意下面的端口号和后面那个不能使用默认的要换一下不然以后会冲突继续next输入密码后next继续next这个页面的两个可以勾选可以不勾选继续next选择Execute进入安装然后next点击finish。进入计算机管理刷新一下可以看到新出现了MySQL97一定要保证是手动的。再次启动MySQL80可以看到两个MySQL服务同时开启。注意日志等其他自定义的路径按版本号区分千万不要让两个不同的服务同时修改同一个目录下的同一个文件下载不同版本的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文件为了让不同版本的实例在启动时避免冲突比如端口冲突需要对不同版本的实例进行一些差异配置。查看端口可以看到3306和3308都启动了。C:\Users\YuDukainetstat -an 活动连接 协议 本地地址 外部地址 状态 ...... TCP [::]:445 [::]:0 LISTENING TCP [::]:1030 [::]:0 LISTENING TCP [::]:3306 [::]:0 LISTENING TCP [::]:3308 [::]:0 LISTENING TCP [::]:7680 [::]:0 LISTENING ......5.2.1 指定基本目录使用选项--basedirdir_name为每个实例指定基本目录通常指定为安装目录不同的实例会自动使用不同的数据目录、日志文件和PID文件这些文件的默认值都是相对于基本目录的当然也可以自定义这些文件# C:\ProgramData\MySQL\MySQL Server 9.7\my.ini # 路径中的空格要用双引号引起来 [mysqld] # mysqld节点 basedirC:/Program Files/MySQL/MySQL Server 9.7 #5.7版本的自定义的基本目录 # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 basedirC:/Program Files/MySQL/MySQL Server 8.0 #8.0版本的自定义的基本目录5.2.2 设置数据目录使用安装器安装成功后不同的版本的数据目录已经自动生成如果要自定义数据目录那么也需要按不同的版本分别设置别其他不同的目录在MySQL服务正常停止的状态下复制C:\ProgramData\MySQL\MySQL Server x.x\Data目录到目标位置即可在对应版本的my.ini文件中指定自定义数据目录通过指定--datadirdir_name实现# C:\ProgramData\MySQL\MySQL Server 9.7\my.ini [mysqld] # mysqld节点 datadirD:/database/MySQL/data9.7 #9.7版本的自定义的数据目录 # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 datadirD:/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节点 port3308 # 监听的端口 # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 port3306 # 监听的端口5.2.4 设置日志目录默认情况下如果开启一般查询日志慢查询日志错误日志二进制日志会在默认的数据目录下生成日志文件也可以自定义目录Windows下要么用\\要么用/。# C:\ProgramData\MySQL\MySQL Server 9.7\my.ini [mysqld] # mysqld节点 # 日志输入目标 log-outputFILE # 一般查询日志 general-log1 general_log_fileD:/log/MySQL/9.7/general.log # 慢查询日志 slow-query-log1 slow_query_log_fileD:/log/MySQL/9.7/slow_query.log long_query_time10 # 错误日志 log-errorD:/log/MySQL/9.7/error_log.err #二进制日志基本名 log-binD:/log/MySQL/9.7/bin_log ################################################################### # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 # 日志输入目标 log-outputFILE # 一般查询日志 general-log1 general_log_fileD:/log/MySQL/8.0/general.log # 慢查询日志 slow-query-log1 slow_query_log_fileD:/log/MySQL/8.0/slow_query.log long_query_time10 # 错误日志 log-errorD:/log/MySQL/8.0/error_log.err #二进制日志基本名 log-binD:/log/MySQL/8.0/bin_log5.2.5 其他设置还有一些其他设置可以通过选项文件指定比如服务器Id临时文件目录等等# C:\ProgramData\MySQL\MySQL Server 5.7\my.ini [mysqld] # mysqld节点 server-id57 # 服务器Id随意指定一个值不重复即可 tmpdirD:/temp/mysql5.7 #临时文件目录 # C:\ProgramData\MySQL\MySQL Server 8.0\my.ini [mysqld] # mysqld节点 server-id1 # 服务器Id随意指定一个值不重复即可 tmpdirD:/temp/mysql8.0 # 临时文件目录5.3 在多服务器环境中使用客户端程序使用mysql客户端程序根据不同版本的MySQL实例配置的IP和端口号指定相应的选项连接不同的MySQL服务器。指定端口通过--portport_number选项实现。如果绑定了不同的网卡通过--hosthost_name选项实现如果不指定--host选项则使用默认值loclhost。最后玩完之后记得把多的MySQL关掉。5.4 介绍一下你知道的MySQL服务器配置文件的选项这个问题主要考察选项的使用回答这个问题可以先总体描述选项文件的使用场景再介绍几个常见的选项即可选项文件主要作用是设置MySQL服务常用的系统变量初始值以便服务器启动时自动读取选项文件中可以用 [程序名] 的形式分别为不同的程序指定具体选项的值也可以用[client]、[server]的形式分别指定客户端程序和服务器程序公共配置。常见的选项有客户端和服务器使用的字符集客户端默认的用户名和密码服务器的排序规则服务器的端口号自定义数据目录的路径日志文件的路径服务器允许的最大连接数还有一些关于存储引擎的选项也可以用于性能调优比如关于INNODB的选项等等。