mysqld_multi - zarządzanie kilkoma serwerami MySQL

Program mysqld_multi służy do zarządzania wieloma procesami mysqld, które oczekują na połączenia na różnych portach TCP/IP i gniazdach unixowych. Umożliwia on uruchamianie i zatrzymywanie serwerów MySQL oraz może informować o ich aktualnym stanie.

Program przeszukuje w pliku konfiguracyjnym (określonym za pomocą opcji --config-file) grup o nazwach [mysqld#]. Parametr # jest to dowolna liczba dodatnia, która specyfikuje określony serwer MySQL. Dla ułatwienia u nas ten parametr będziemy nazywali GNR.

Składnia wywołania programu mysqld_multi wygląda następująco:

shell> mysqld_multi [opcje] {start|stop|report} [GNR[,GNR]...]

Argumenty start,stop oraz report mówią jaką operacje ma wykonać program. Operacje zostaną wykonane na jednym lub wielu serwerach, np. dla GNR 5-8 operacje zostaną wykonane dla grupy od [mysqld5] do [mysqld8]. Jeżeli nie podamy żadnej wartości to program mysqld_multi wykona operacje na wszystkich serwerach wymienionych w pliku opcji.

Kilka przykładów użycia:

Uruchomienie serwera numer 3

shell> mysqld_multi start 3

Zatrzymanie kilku serwerów 4,7,8 oraz 9.

shell> mysqld_multi 4,7-9

Aby zobaczyć więcej przykładów konfiguracji oraz pozostałe opcje:

shell> mysqld_multi --example

Kilka uwag praktycznych:

1.Należy zadbać oto aby konto MySQL używane do zatrzymywania serwerów mysqld miało tę samą nazwę użytkownika i hasło oraz odpowiednie uprawnienia (tj. przywilej SHUTDOWN).

2. Każdy serwer mysqld powinien używać innego portu TCP/IP i gniazda unixowego.

3. Sprawdź uprawnienia do katalogów z danymi bazy, tj. czy konto unixowe bez problemu uzyska do nich dostęp.

4. Staraj się nie używać konta root jako użytkownika z którego uruchamiasz procesy MySQL.

Przykład pliku konfiguracyjnego my.cnf dla potrzeb mysqld_multi

Zauważ ze numeracja serwerów MySQL w konfigu nie musi być w kolejności. Dopuszczalne są "dziury".