5.7.2.1 在 Windows 命令行中启动多个 MySQL 实例
第 2.3.4.6 节“从 Windows 命令行启动 MySQL”中描述了从命令行手动启动单个 MySQL 服务器的过程。要以这种方式启动多个服务器,可以在命令行或选项文件中指定适当的选项。将选项放置在选项文件中更为方便,但是有必要确保每个服务器都有自己的选项集。为此,请为每个服务器创建一个选项文件,并在运行该服务器时使用--defaults-file选项告诉服务器该文件名。
假设您要在端口 3307 上使用数据目录C:\mydata1
运行一个mysqld实例,并在端口 3308 上使用数据目录C:\mydata2
运行另一个实例。使用此过程:
-
确保每个数据目录都存在,包括包含授权 table 的
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
如上所述配置的服务器允许 Client 端通过 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系统变量为每个服务器指定唯一的共享内存名称。