#### 5.8.2.1 在 Windows 命令行启动多个 MySQL 实例

从命令行手动启动单个 MySQL 服务器的过程在[第 2.3.4.6 节，“从 Windows 命令行启动 MySQL”](windows-start-command-line.html).要以这种方式启动多个服务器，您可以在命令行或选项文件中指定适当的选项。将选项放在选项文件中更方便，但有必要确保每个服务器都有自己的一组选项。为此，请为每个服务器创建一个选项文件，并用[`--defaults 文件`](option-file-options.html#option_general_defaults-file)运行时的选项。

假设您要运行一个实例[**mysqld**](mysqld.html)在端口 3307 上，数据目录为`C:\我的数据1`, 另一个实例位于端口 3308 上，其数据目录为`C:\我的数据2`.使用此过程：

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 文件`](option-file-options.html#option_general_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`类似地供第二个服务器使用。然后如前所述启动服务器。

类似的过程适用于您希望允许共享内存连接的服务器。通过使用以下命令启动服务器来启用此类连接[`共享内存`](server-system-variables.html#sysvar_shared_memory)启用系统变量并通过设置为每个服务器指定一个唯一的共享内存名称[`shared_memory_base_name`](server-system-variables.html#sysvar_shared_memory_base_name)系统变量。
