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

Fra*_*tin 14 mysql windows multiple-instances

我刚刚在 Windows 2012 VM 上安装了 MySQL 5.7。我正在尝试创建和运行多个实例,但对这么简单的事情不起作用感到非常沮丧。

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

两个 MySQL 实例如下图所示。

服务器 1 服务器 1

服务器2
服务器2

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

服务器 1

server-id=1
log-bin="mysql-bin"
binlog-ignore-db=test
binlog-ignore-db=information_schema
replication-ignore-db=test
replica-ignore-db=information_schema
relay-log="mysql-relay -log"
自动增量-增量 = 2
自动增量-偏移量 = 1

Server2
server-id=2
log-bin="mysql-bin"
binlog-ignore-db=test
binlog-ignore-db=information_schema
replication-ignore-db=test
replication-ignore-db=information_schema
relay-log="mysql-中继日志”
自动增量增量 = 2
自动增量偏移量 = 2

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

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

我究竟做错了什么?

Fra*_*tin 12

我做的错误是复制整个 MySQL 安装文件夹。您无需复制此文件夹。

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

datadir=C:/MyInstances/data1

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

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

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


Ant*_*ito 11

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

将端口号更改为不同是使其工作的原因


小智 11

  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"
Run Code Online (Sandbox Code Playgroud)
  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. 检查以确保服务已成功启动。如果没有,那么您可以在数据文件夹中找到错误日志,否则您应该很高兴。