Come installare e avviare più istanze MySQL su Windows 2012


12

Ho appena installato MySQL 5.7 su Windows 2012 VM. Sto cercando di creare ed eseguire più istanze ma sono molto frustrato dal fatto che una cosa così semplice non funzioni.

Ho installato MySQL in C: \ Programmi \ MySQL \ MySQL Server 5.7, che è la posizione predefinita, quindi ho copiato la cartella e ne ho fatto un'altra copia per creare un'altra istanza (suppongo che funzioni così?)

Entrambe le istanze di MySQL sono mostrate nell'immagine seguente.

Server1 Server1

Server2
Server2

Le impostazioni INI per entrambi i server sono riportate di seguito:

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-incremento-incremento = 2
auto-incremento-offset = 1

Server2
id server = 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-incremento-incremento = 2
auto-incremento-offset = 2

Sto eseguendo entrambi i server aprendo il prompt dei comandi e digitando quanto segue:
"C: \ Programmi \ MySQL \ MySQL Server 5.7 \ bin \ mysqld"
"C: \ Programmi \ MySQL \ MySQL Server 5.7 - 2 \ bin \ mysqld"

Il comando sembra funzionare correttamente poiché non viene mostrato alcun errore ma quando guardo il task manager per vedere se sono in esecuzione processi mysql, non ne vedo nessuno.

Che cosa sto facendo di sbagliato?


Modifica la tua domanda per includere i log degli errori, ecc.
EEAA

Il problema è stato risolto.
Frank Martin,

Vorresti che aprissi la domanda in modo da poter pubblicare una risposta?
EEAA

Sì, così posso pubblicare una risposta.
Frank Martin,

Risposte:


11

Credo che stavi cercando di eseguirli sulla stessa porta.

Modificato il numero di porte in modo diverso era ciò che lo ha fatto funzionare


11

L'errore che stavo facendo era copiare l'intera cartella di installazione di MySQL. Non è necessario copiare questa cartella.

  • È sufficiente creare un nuovo file ini per ogni istanza che si desidera eseguire (esempi sopra riportati) in qualsiasi posizione, ad esempio C: \ MyInstances \ my1.ini.
  • Quindi creare una nuova cartella per es. Data1 in C: \ MyInstances \ data1 e copiare i database mysql e information_schema in essa. Otterrai questi database dalla cartella dati in cui è installato MySQL. Su Windows 2012 (e probabilmente su altri server OS) in genere è C: \ ProgramData \ MySQL
  • Quindi definire quanto segue nel file ini.

datadir = C: / MyInstances / data1

  1. Quindi eseguire il comando seguente che installerà MySQL come servizio. Dopo aver creato i servizi è sufficiente eseguire il servizio.

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

Ovviamente in ogni file ini, devi definire un numero di porta diverso come indicato da @Anthony Fornito.


11
  1. Creare una cartella di dati separata e fornire CONTROLLO COMPLETO AL SERVIZIO DI RETE.
  2. Copia il file my.ini nella nuova cartella di dati.
  3. Creare un nuovo file nella directory dei dati chiamato mysql-init.txt e aggiungere una singola riga per assicurarsi che sia impostata la password dell'utente root.

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. Modificare il file my.ini modificando la porta, il socket, il datadir e il nome della base di memoria condivisa. Tutto ciò deve essere diverso dalle altre istanze di 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. Dalla riga di comando, accedere a ~ \ MySQL Server XY \ bin \ ed eseguire

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. Avvia il servizio

    • NET START MySQL57-2
  3. Verificare che il servizio sia stato avviato correttamente. In caso contrario, puoi trovare un registro degli errori nella cartella dei dati, altrimenti dovresti essere pronto.


lo ha seguito, ma non è stato in grado di avviare il nuovo servizio, PS C: \ MySQLInstances \ data> net start mysqld Il servizio mysqld è in fase di avvio. Non è stato possibile avviare il servizio mysqld. Il servizio non ha segnalato un errore. Ulteriori informazioni sono disponibili digitando NET HELPMSG 3534.
Rajat,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.