单个 MySQL 服务器的手动启动命令行过程在 第 2.3.3.6 节,“从 Windows 命令行启动 MySQL” 中有所描述。要以这种方式启动多个服务器,可以在命令行或选项文件中指定适当的选项。将选项放在选项文件中更方便,但需要确保每个服务器都获得其自己的选项集。为此,创建每个服务器的选项文件,并在运行服务器时使用 --defaults-file
选项指定文件名。
假设您想在端口 3307 上运行一个 mysqld 实例,数据目录为 C:\mydata1
,另一个实例在端口 3308 上,数据目录为 C:\mydata2
。使用以下过程:
-
确保每个数据目录都存在,包括其自己的
mysql
数据库副本,该数据库包含授权表。 -
创建两个选项文件。例如,创建一个名为
C:\my-opts1.cnf
的文件,内容如下:[mysqld] datadir = C:/mydata1 port = 3307
创建第二个名为
C:\my-opts2.cnf
的文件,内容如下:[mysqld] datadir = C:/mydata2 port = 3308
-
使用
--defaults-file
选项启动每个服务器,使用其自己的选项文件:C:\> C:\mysql\bin\mysqld --defaults-file=C:\my-opts1.cnf C:\> C:\mysql\bin\mysqld --defaults-file=C:\my-opts2.cnf
每个服务器都在前台启动(直到服务器后面退出,才会出现新的提示符),因此您需要在单独的控制台窗口中发出这两个命令。
要关闭服务器,请使用适当的端口号连接到每个服务器:
C:\> C:\mysql\bin\mysqladmin --port=3307 --host=127.0.0.1 --user=root --password shutdown
C:\> C:\mysql\bin\mysqladmin --port=3308 --host=127.0.0.1 --user=root --password shutdown
按照上述配置的服务器允许客户端通过 TCP/IP 连接。如果您的 Windows 版本支持命名管道,并且您还想允许命名管道连接,请指定启用命名管道的选项并指定其名称。每个支持命名管道连接的服务器必须使用唯一的管道名称。例如,C:\my-opts1.cnf
文件可能如下所示:
[mysqld]
datadir = C:/mydata1
port = 3307
enable-named-pipe
socket = mypipe1
相似地修改 C:\my-opts2.cnf
文件,以便第二个服务器使用。然后按照之前描述的方式启动服务器。
对于您想允许共享内存连接的服务器,启用共享内存连接的过程类似。启用共享内存连接需要启动服务器时启用 shared_memory
系统变量,并为每个服务器设置唯一的共享内存名称,方法是设置 shared_memory_base_name
系统变量。