如何在Windows 2012上安装和启动多个MySQL实例

我刚刚在Windows 2012 VM上安装了MySQL 5.7。 我试图创build和运行多个实例,但非常沮丧,这样一个简单的事情是行不通的。

我在默认位置的C:\ Program Files \ MySQL \ MySQL Server 5.7中安装了MySQL,然后我复制了该文件夹,并创build了另一个副本来创build另一个实例(我想这是如何工作的?)

这两个MySQL实例如下图所示。

服务器1 服务器1

Server2上
Server2上

两个服务器的INI设置如下:

服务器1

服务器ID = 1
login斌=“MySQL的斌”
二进制日志-忽略-DB =testing
二进制日志-忽略-DB = INFORMATION_SCHEMA
重复实验-忽略-DB =testing
重复实验-忽略-DB = INFORMATION_SCHEMA
中继日志=“MySQL的中继日志”
自动增量增量= 2
自动增量偏移量= 1

Server2上
服务器ID = 2
login斌=“MySQL的斌”
二进制日志-忽略-DB =testing
二进制日志-忽略-DB = INFORMATION_SCHEMA
重复实验-忽略-DB =testing
重复实验-忽略-DB = INFORMATION_SCHEMA
中继日志=“MySQL的中继日志”
自动增量增量= 2
自动增量偏移量= 2

我通过打开命令提示符并键入以下命令运行两台服务器:
“C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld”
“C:\ Program Files \ MySQL \ MySQL Server 5.7 – 2 \ bin \ mysqld”

该命令似乎运行成功,因为没有显示错误,但当我看任务pipe理器,看看是否有任何MySQL进程正在运行,我看不到任何。

我究竟做错了什么?

我正在做的错误是复制整个MySQL安装文件夹。 你不需要复制这个文件夹。

  • 只需在任意位置为您想运行的每个实例(上面给出的示例)创build一个新的ini文件,例如C:\ MyInstances \ my1.ini。
  • 然后为C:\ MyInstances \ data1中的data1创build一个新文件夹,并将mysqlinformation_schema数据库复制到该文件夹​​中。 您将从安装MySQL的数据文件夹中获取这些数据库。 在Windows 2012(也可能是其他服务器操作系统)上,通常是C:\ ProgramData \ MySQL
  • 然后在你的ini文件中定义以下内容。

DATADIR = C:/ MyInstances / DATA1

  1. 然后运行下面的命令,将安装MySQL作为服务。 在创build服务之后,只需运行服务即可。

MySqlpath \ bin \ mysqld – 安装mysqld1 –defaults-file = PATH_TO_YOUR_INI_FILE

当然,在每个ini文件中,您必须定义@Anthony Fornito提到的不同端口号。

我相信你试图在同一个端口上运行它们。

更改端口号码是不同的是它的工作原理

  1. 创build一个单独的数据文件夹,并将networking服务的完全控制。
  2. 将my.ini文件复制到新的数据文件夹。
  3. 在数据目录下创build一个名为mysql-init.txt的新文件,并添加一行以确保设置root用户的密码。

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. 编辑my.ini文件,方法是更改​​端口,套接字,datadir和共享内存基本名称。 所有这些都需要与其他MySQL实例不同。

my.ini文件:

 [client] port=3333 socket=MYSQL2_INST.SOCK shared-memory-base-name=MYSQL2_INST [mysqld] shared-memory-base-name=MYSQL2_INST socket=MYSQL2_INST.SOCK port=3333 basedir="C:/Program Files/MySQL/MySQL Server 5.7" datadir="E:/MySQL2/Data" 
  1. 从命令行导航到〜\ MySQL服务器XY \ bin \并运行

    • mysqld --install MySQL57-2 --defaulsts-file=e:\mysql2\data\my.ini --init file=e:\mysql2\data\mysql-init.txt
  2. 开始服务

    • net start mysql57-2
  3. 检查以确保服务已成功启动。 如果没有,那么你可以在数据文件夹中find一个错误日志,否则你应该很好去。