我刚刚在 Windows 2012 VM 上安装了 MySQL 5.7。我正在尝试创建和运行多个实例,但非常沮丧的是这样一个简单的事情不起作用。
我在默认位置C:\Program Files\MySQL\MySQL Server 5.7中安装了 MySQL,然后我复制了该文件夹并制作了另一个副本以创建另一个实例(我想这就是它的工作原理?)
两个 MySQL 实例如下图所示。
两台服务器的 INI 设置如下:
服务器1
server-id=1
log-bin="mysql-bin"
binlog-ignore-db=test
binlog-ignore-db=information_schema
replicate-ignore-db=test
replicate-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
replicate-ignore-db=test
replicate-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 进程正在运行时,我看不到任何错误。
我究竟做错了什么?
我做的错误是复制整个 MySQL 安装文件夹。您不需要复制此文件夹。
当然,在每个 ini 文件中,您必须定义 @Anthony Fornito 提到的不同端口号。
我相信你试图在同一个端口上运行它们。
将端口号更改为不同是它起作用的原因
在数据目录中创建一个名为 mysql-init.txt 的新文件,并添加一行以确保设置了 root 用户的密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
通过更改端口、套接字、datadir 和共享内存基本名称来编辑 my.ini 文件。所有这些都需要与 MySQL 的其他实例不同。
我的.ini:
从命令行导航到 ~\MySQL Server XY\bin\ 并运行
mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
启动服务
NET START MySQL57-2
检查以确保服务已成功启动。如果没有,那么您可以在数据文件夹中找到错误日志,否则您应该很高兴。
我的步骤
Windows 10
:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
到C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini
my1.ini
并修改:C:\ProgramData\MySQL\MySQL Server 8.0\Data
到C:\ProgramData\MySQL\MySQL Server 8.0\Data1
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.
键入
services.msc
,找到服务名称MySQL80-1
,右键单击它并单击Start
。如果一切顺利,您将看到
Status
更改为Running
.如果不顺利,请打开
xxx.err
找到的文件C:\ProgramData\MySQL\MySQL Server 8.0\Data1
以检查原因。如果您不再需要该服务:
cmd
提示删除它。sc delete MySQL80-1
MySQL80-1