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


12

我刚刚在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
复制-ignore-db = test
复制-ignore-db = information_schema
relay-log =“ mysql-relay -log“
auto-increment-increment = 2
auto-increment-offset = 1

Server2
服务器ID = 2
log-bin =“ mysql-bin”
binlog-ignore-db = test
binlog-ignore-db = information_schema
复制-ignore-db = test
复制-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进程正在运行时,我看不到任何命令。

我究竟做错了什么?


请编辑您的问题以包括错误日志等
。– EEAA

问题已解决。
弗兰克·马丁

您要我打开问题以便发布答案吗?
EEAA

是的,所以我可以发布答案。
Frank Martin

Answers:



11

我做的错误是复制整个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-安装mysqld1 --defaults-file = PATH_TO_YOUR_INI_FILE

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


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

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. 通过更改端口,套接字,数据目录和共享内存的基本名称来编辑my.ini文件。所有这些都必须与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 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. 检查以确保服务成功启动。如果没有,那么您可以在数据文件夹中找到错误日志,否则您应该会很好。


紧随其后,但无法启动新服务,PS C:\ MySQLInstances \ data> net start mysqld mysqld服务正在启动。mysqld服务无法启动。该服务未报告错误。通过键入NET HELPMSG 3534,可以获得更多帮助。–
Rajat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.