Czasami może być konieczne uruchomienie wielu instancji MySQL na jednym serwerze. Na przykład może być konieczne przetestowanie różnych instancji MySQL w celu przygotowania, testowania i produkcji. W tym artykule przyjrzymy się, jak uruchomić wiele instancji MySQL na tej samej maszynie, ale na różnych portach, z różnymi plikami dziennika i parametrami konfiguracyjnymi.
Jak uruchomić wiele instancji MySQL na tym samym komputerze
Oto kroki, aby uruchomić wiele instancji MySQL na tym samym komputerze.
1. Otwórz plik konfiguracyjny MySQL
Zazwyczaj plik konfiguracyjny MySQL znajduje się pod adresem /etc/mysql/my.cnf . Otwórz terminal i uruchom następujące polecenie, aby otworzyć plik konfiguracyjny MySQL.
$ sudo vi /etc/mysql/my.cnf
2. Skonfiguruj wiele instancji MySQL
Znajdziesz domyślną konfigurację MySQL podobną do pokazanej poniżej.
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /data/mysql/mysql
Skopiuj + wklej powyższy blok kodu poniżej w tym samym pliku. Zastąp [mysqld] z [mysqld1] i zmień wartość portu na 3307. Spowoduje to, że nowa instancja mysqld1 uruchomić na innym porcie 3307 z inną nazwą procesu mysqld1. Podobnie zmień nazwy plików zmiennych pid-file, socket i datadir, jak pokazano poniżej.
Upewnij się, że skopiuj folder datadir dla każdej poniższej instancji. Upewnij się również, że użytkownik mysql użytkownik ma do niego uprawnienia dostępu. Każda instancja potrzebuje własnego katalogu danych.
[mysqld1] user = mysql pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /data/mysql/mysql1
Teraz mysqld1 będzie działać jako oddzielna instancja niż mysqld
Podobnie możesz utworzyć więcej instancji, jak pokazano poniżej
[mysqld2] user = mysql pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3308 datadir = /data/mysql/mysql2 .... [mysqldN] user = mysql pid-file = /var/run/mysqld/mysqldN.pid socket = /var/run/mysqld/mysqldN.sock port = N datadir = /data/mysql/mysqlN
Upewnij się, że podasz inny plik pid, plik gniazda i katalog danych dla każdej instancji i upewnij się, że użytkownik mysql ma wymagane uprawnienia do katalogu, ponieważ mysql użytkownik powinien mieć możliwość tworzenia wymaganych plików i katalogów.
3. Zarządzaj wieloma instancjami
Każdą instancję możesz uruchomić osobno, używając mysqld polecenie poniżej. Zastąp mysqlN z wybraną przez Ciebie instancją (np. mysql1, mysql2, itp.)
mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN
Jeśli z jakiegoś powodu powyższa konfiguracja nie działa dla Ciebie, skopiuj plik my.cnf do /etc/my.cnf lokalizację i spróbuj ponownie. Czasami mysql nie rejestruje wielu instancji skonfigurowanych w /etc/mysql/my.cnf
$ sudo cp /etc/mysql/my.cnf /etc/my.cnf
Jeśli chcesz zalogować się do jakiejś konkretnej instancji (np. mysqld1) z wiersza poleceń, musisz określić jej lokalizację pliku gniazda za pomocą opcji -S. W przeciwnym razie zostaniesz zalogowany do domyślnej instancji MySQL.
mysql -u root -p -S /var/run/mysqld/mysqld1.sock
Mamy nadzieję, że ten artykuł pomoże Ci skonfigurować i zarządzać wieloma instancjami MySQL na tym samym serwerze.
Potrzebujesz narzędzia do raportowania dla MySQL? Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!