Windows – How to install and start multiple MySQL instances on Windows 2012

multiple-instancesMySQLwindows

I just installed MySQL 5.7 on Windows 2012 VM. I am trying to create and run multiple instances but very frustrated that such a simple thing is not working.

I installed MySQL in C:\Program Files\MySQL\MySQL Server 5.7 which is default location and then I copied the folder and made another copy of it to create another instance (I suppose this is how it works?)

Both MySQL instances are shown in image below.

Server1
Server1

Server2
Server2

INI settings for both servers are given below:

Server1

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"
auto-increment-increment = 2
auto-increment-offset = 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-relay-log"
auto-increment-increment = 2
auto-increment-offset = 2

I am running both servers by opening command prompt and typing following:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld"
"C:\Program Files\MySQL\MySQL Server 5.7 – 2\bin\mysqld"

The command seems to run successfully as no error is shown but when I look at task manager to see if any mysql processes are running, I see none.

What am I doing wrong?

Best Answer

The mistake I was doing was to copy whole MySQL installation folder. You don't need to copy this folder.

  • Simply create a new ini file for each instance that you want to run (examples given above) at any location for e.g. C:\MyInstances\my1.ini.
  • Then create a new folder for e.g. data1 in C:\MyInstances\data1 and copy mysql and information_schema databases in it. You will get these databases from data folder where MySQL is installed. On Windows 2012 (and probably other server OS) it typically is C:\ProgramData\MySQL
  • Then define the following in your ini file.

datadir=C:/MyInstances/data1

  1. Then run following command which will install MySQL as service. After services is created simply run the service.

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

Of course in each ini file, you have to define a different port number as mentioned by @Anthony Fornito.