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.
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?
The mistake I was doing was to copy whole MySQL installation folder. You don't need to copy this folder.
Of course in each ini file, you have to define a different port number as mentioned by @Anthony Fornito.
I believe you were trying to run them on the same port.
Changed the ports numbers to be different was what made it work
Create a new file in the data directory called mysql-init.txt and add a single line to ensure that the password of the root user is set.
ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
Edit the my.ini file by changing the port, socket, datadir, and shared memory base name. All of which need to be different from other instances of MySQL.
my.ini:
From the command line navigate to ~\MySQL Server X.Y\bin\ and run
mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
Start the service
NET START MySQL57-2
Check to make sure the service started successfully. If it didn’t then you can find an error log in the data folder else you should be good to go.
My steps on
Windows 10
:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
toC:\ProgramData\MySQL\MySQL Server 8.0\my1.ini
my1.ini
and modify:C:\ProgramData\MySQL\MySQL Server 8.0\Data
toC:\ProgramData\MySQL\MySQL Server 8.0\Data1
cmd
prompt: (With Administrator privileges if necessary)C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --install MySQL80-1 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini"
If all went well, you will see:
Service successfully installed.
Type
services.msc
, find the service nameMySQL80-1
, right-click on it and clickStart
.If all went well, you will see the
Status
change toRunning
.If it did not go well, open
xxx.err
file found inC:\ProgramData\MySQL\MySQL Server 8.0\Data1
to check why.If you do not want the service anymore:
cmd
prompt usingsc delete MySQL80-1
whereMySQL80-1
is your service name.