Documentation Home

5.7.2.1 Windows命令行启动多个MySQL实例

从命令行手动启动单个 MySQL 服务器的过程在 第 2.3.4.6 节,“从 Windows 命令行启动 MySQL”中描述。要以这种方式启动多个服务器,您可以在命令行或选项文件中指定适当的选项。将选项放在选项文件中更方便,但必须确保每个服务器都有自己的选项集。为此,为每个服务器创建一个选项文件,并--defaults-file 在运行时用选项告诉服务器文件名。

假设您想 在端口 3307 上 运行一个mysqldC:\mydata1实例,数据目录为,并在端口 3308 上运行另一个实例,数据目录为C:\mydata2。使用此过程:

  1. 确保每个数据目录都存在,包括它自己的mysql包含授权表的数据库副本。

  2. 创建两个选项文件。例如,创建一个名称 C:\my-opts1.cnf如下所示的文件:

    [mysqld]
    datadir = C:/mydata1
    port = 3307

    创建第二个文件 C:\my-opts2.cnf,名称如下所示:

    [mysqld]
    datadir = C:/mydata2
    port = 3308
  3. 使用该--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