Muszę skonfigurować serwer MySQL, aby działał jako wzorzec replikacji.
Zmodyfikowałem plik my.cnf, aby aktywować dzienniki binarne, ale teraz, aby przeładować konfigurację, muszę ponownie załadować usługę /etc/init.d/mysqld restart
. Problem polega na tym, że serwer odbiera kilka zapytań na sekundę, a tymczasem nie chcę stracić wszystkich danych.
Czy istnieje sposób na ponowne załadowanie pliku konfiguracyjnego my.cnf bez ponownego uruchamiania usługi?
mysql
replication
David Espart
źródło
źródło
/etc/init.d/restart
zrestartuje cały host. Prawdopodobnie myślisz o/etc/init.d/mysqld restart
Odpowiedzi:
MySQL W szczególności:
Opcje w my.cnf są zmiennymi systemowymi . Te zmienne są dynamiczne (można je zmienić w czasie wykonywania) lub nie są dynamiczne. Te, które są dynamiczne, można zmieniać w czasie wykonywania za pomocą składni zmiennej SET. Możesz zobaczyć zmienne za pomocą
SHOW VARIABLES;
. Ale zgodnie z tym linkiem w instrukcji opcja dziennika binarnego nie jest dynamiczna. Wygląda na to, że musisz zrestartować. Możesz jednak poczekać, aż ktoś, kto zna mysql trochę lepiej ode mnie, potwierdzi to.Ogólne
demony : W systemie Linux /etc/init.d/ przechowuje skrypty uruchamiające i zatrzymujące demony (usługi). Ponieważ są to skrypty, możesz je przeglądać za pomocą edytora tekstu. Wiele z tych skryptów wymaga argumentu przeładowania. Patrząc na mój skrypt mysql, przeładuj, ponieważ argument używa komendy mysqladmin. Tak więc instrukcja mysqladmin podczas przeładowania mówi:
Wygląda na to, że generalnie nie dotyczy to zmian konfiguracji, ale raczej zmian uprawnień (może równoważne polecenie przywracania uprawnień?).
źródło
szukałem rozwiązania tego problemu, ale nie byłem zadowolony z ograniczonej pomocy, którą znalazłem. Jeden facet zaproponował zabójstwo -HUP .. nie działało dla mnie ..
to, co zrobiłem, to wstrzymanie instancji apache .. a następnie kontynuowanie ich później .. działało jak urok na serwerze, na którym mam średnio 25 aktywnych żądań na sekundę.
z sudo (oczywiście) pkill -STOP httpd && /etc/init.d/mysqld restart && pkill -CONT httpd
oczywiście nazwa twojego procesu apache i / lub skrypty restartujące mysql mogą się różnić od moich, ale masz dobry pomysł!
źródło