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

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

我刚刚在 Windows 2012 VM 上安装了 MySQL 5.7。我试图创建并运行多个实例,但令人沮丧的是,这么简单的事情却无法正常工作。

我在C:\Program Files\MySQL\MySQL 服务器 5.7这是默认位置,然后我复制了该文件夹并制作了另一份副本以创建另一个实例(我想这是它的工作原理?)

下图显示了两个 MySQL 实例。

服务器1 服务器1

服务器2
服务器2

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

服务器1

服务器 ID = 1
log-bin =“mysql-bin”
binlog-ignore-db = 测试
binlog-ignore-db = information_schema
复制忽略数据库 = 测试
复制忽略数据库 = information_schema 中继
日志 =“mysql-relay-log”
自动增量增量 = 2
自动增量偏移 = 1

服务器2
服务器 ID = 2
log-bin =“mysql-bin”
binlog-ignore-db = 测试
binlog-ignore-db = information_schema
复制忽略数据库 = 测试
复制忽略数据库 = information_schema 中继
日志 =“mysql-relay-log”
自动增量增量 = 2
自动增量偏移 = 2

我通过打开命令提示符并输入以下内容来运行两个服务器:
“C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld”
“C:\Program Files\MySQL\MySQL Server 5.7 - 2\bin\mysqld”

该命令似乎成功运行,因为没有显示错误,但是当我查看任务管理器以查看是否有任何 mysql 进程正在运行时,却没有看到任何错误。

我究竟做错了什么?

答案1

我犯的错误是复制了整个 MySQL 安装文件夹。您不需要复制此文件夹。

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

datadir=C:/MyInstances/data1

  1. 然后运行以下命令,将 MySQL 安装为服务。创建服务后,只需运行该服务即可。

MySqlpath\bin\mysqld --install mysqld1 --defaults-file=PATH_TO_YOUR_INI_FILE

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

答案2

我相信您正尝试在同一个端口上运行它们。

将端口号改为不同的才能使其工作

答案3

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

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

我的.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 Server XY\bin\ 并运行

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. 启动服务

    • NET START MySQL57-2
  3. 检查以确保服务已成功启动。如果没有,您可以在数据文件夹中找到错误日志,否则您应该可以继续。

答案4

我的步骤Windows 10

  1. 复制C:\ProgramData\MySQL\MySQL Server 8.0\my.iniC:\ProgramData\MySQL\MySQL Server 8.0\my1.ini
  2. 打开my1.ini并修改:
    • 端口=3307(在客户端和服务器部分下)
    • datadir = C:/ ProgramData / MySQL / MySQL服务器8.0 / Data1
    • 报告端口=3307
  3. 复制C:\ProgramData\MySQL\MySQL Server 8.0\DataC:\ProgramData\MySQL\MySQL Server 8.0\Data1
  4. 按提示运行cmd:(必要时需要管理员权限)
    C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --install MySQL80-1 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini"

如果一切顺利,您将看到:
Service successfully installed.

  1. Win+R
    输入services.msc,找到服务名称MySQL80-1,右键单击,然后单击Start

如果一切顺利,您将看到Status的变化Running
如果进展不顺利,请打开xxx.err中的文件C:\ProgramData\MySQL\MySQL Server 8.0\Data1检查原因。


如果你不想服务不再:

  • 停下来
  • cmd在提示符下使用您的服务名称在sc delete MySQL80-1哪里将其删除。MySQL80-1

相关内容