Jak zainstalować i uruchomić wiele instancji MySQL w systemie Windows 2012

12

Właśnie zainstalowałem MySQL 5.7 na maszynie wirtualnej z systemem Windows 2012. Próbuję utworzyć i uruchomić wiele instancji, ale jestem bardzo sfrustrowany, że tak prosta rzecz nie działa.

Zainstalowałem MySQL w C: \ Program Files \ MySQL \ MySQL Server 5.7, który jest domyślną lokalizacją, a następnie skopiowałem folder i zrobiłem kolejną jego kopię, aby utworzyć inną instancję (przypuszczam, że tak to działa?)

Oba wystąpienia MySQL pokazano na obrazku poniżej.

Serwer 1 Serwer 1

Serwer 2
Serwer 2

Ustawienia INI dla obu serwerów podano poniżej:

Serwer 1

server-id = 1
log-bin = "mysql-bin"
binlog-ignore-db = test
binlog-ignore-db = schemat_informacji
replicate-ignore-db = test
replicate-ignore-db = schemat_informacji
relay-log = "przekaźnik mysql -log "
auto-increment-increment = 2
auto-increment-offset = 1

Server2
server-id = 2
log-bin = "mysql-bin"
binlog-ignore-db = test
binlog-ignore-db = schemat_informacyjny
replicate-ignore-db = test
replicate-ignore-db =
schemat_informacyjny relay-log = "mysql- przekaźnik-log "
auto-increment-increment = 2
auto-increment-offset = 2

Korzystam z obu serwerów, otwierając wiersz polecenia i wpisując:
„C: \ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld”
„C: \ Program Files \ MySQL \ MySQL Server 5.7 - 2 \ bin \ mysqld”

Wydaje się, że polecenie działa poprawnie, ponieważ nie jest wyświetlany żaden błąd, ale gdy patrzę na menedżera zadań, aby sprawdzić, czy są uruchomione jakieś procesy mysql, nie widzę żadnego.

Co ja robię źle?

Frank Martin
źródło
Edytuj swoje pytanie, aby uwzględnić dzienniki błędów itp.
EEAA
Problem został rozwiązany.
Frank Martin
Czy chcesz, żebym otworzył pytanie, abyś mógł opublikować odpowiedź?
EEAA
Tak, żebym mógł opublikować odpowiedź.
Frank Martin

Odpowiedzi:

11

Myślę, że próbowałeś uruchomić je na tym samym porcie.

Zmieniono numery portów tak, aby działały inaczej

Anthony Fornito
źródło
11

Błąd, który popełniłem, polegał na skopiowaniu całego folderu instalacyjnego MySQL. Nie musisz kopiować tego folderu.

  • Po prostu utwórz nowy plik ini dla każdej instancji, którą chcesz uruchomić (przykłady podane powyżej) w dowolnym miejscu, np. C: \ MyInstances \ my1.ini.
  • Następnie utwórz nowy folder np. Data1 w C: \ MyInstances \ data1 i skopiuj do niego bazy danych mysql i information_schema . Otrzymasz te bazy danych z folderu danych, w którym jest zainstalowany MySQL. W systemie Windows 2012 (i prawdopodobnie innym systemie operacyjnym serwera) zwykle jest to C: \ ProgramData \ MySQL
  • Następnie zdefiniuj następujące elementy w pliku ini.

datadir = C: / MyInstances / data1

  1. Następnie uruchom następujące polecenie, które zainstaluje MySQL jako usługę. Po utworzeniu usług wystarczy uruchomić usługę.

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

Oczywiście w każdym pliku ini musisz zdefiniować inny numer portu, jak wspomniano w @Anthony Fornito.

Frank Martin
źródło
11
  1. Utwórz osobny folder danych i daj PEŁNĄ KONTROLĘ USŁUGI SIECIOWEJ.
  2. Skopiuj plik my.ini do nowego folderu danych.
  3. Utwórz nowy plik w katalogu danych o nazwie mysql-init.txt i dodaj pojedynczy wiersz, aby upewnić się, że ustawione jest hasło użytkownika root.

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. Edytuj plik my.ini, zmieniając nazwę portu, gniazda, datadir i nazwy pamięci współużytkowanej. Wszystkie muszą różnić się od innych instancji 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. Z wiersza poleceń przejdź do ~ \ MySQL Server XY \ bin \ i uruchom

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. Uruchom usługę

    • NET START MySQL57-2
  3. Sprawdź, czy usługa została uruchomiona pomyślnie. Jeśli tak się nie stanie, możesz znaleźć dziennik błędów w folderze danych, w przeciwnym razie powinieneś iść.

MasterProgrammer200
źródło
postępował zgodnie z nim, ale nie mógł rozpocząć pobierania nowej usługi, PS C: \ MySQLInstances \ data> net start mysqld Usługa mysqld jest uruchamiana. Nie można uruchomić usługi mysqld. Usługa nie zgłosiła błędu. Więcej pomocy można uzyskać, wpisując NET HELPMSG 3534.
Rajat