Po aktualizacji do 15.04 miałem dużo zabawy z poznaniem systemd. Wydaje mi się, że wszystko działa, ale nie jestem w stanie zatrzymać mysql.service; polecenie systemctl po prostu się zawiesza, a mysql nadal działa. Czy ktoś jeszcze tego doświadczył lub może wiedzieć, co się dzieje?
17
mysql.service
skryptu, czy też stworzyłeś własny?Odpowiedzi:
Miałem ten sam problem (aktualizacja do 15.04, przy użyciu oficjalnych plików i konfiguracji).
Musiałem wprowadzić następujące zmiany, aby móc
mysql
ręcznie zatrzymać demonasytemctl
i automatycznie ponownie uruchomić / zamknąć system:Uczynić
/etc/mysql/debian.cnf
czytelny dlamysql
użytkownika zPodaj nieco zmodyfikowany
mysql.service
plik:Podaj jawne polecenie zatrzymania, otwierając skopiowany plik w edytorze:
i dodając następujący wiersz w
[Service]
sekcji:W Nano użyj Ctrl + O, aby zapisać (sposób Linux!), Ctrl + X, aby wyjść.
Powiadom system o nowym pliku usługi:
źródło
Miałem ten sam problem z Ubuntu 15.10 Desktop i znalazłem sposób, aby go naprawić:
parametr log_error w /etc/mysql/mysql.conf.d/mysqld.cnf został skomentowany. Po odkomentowaniu parametru systemd wykonuje mysqld zamknięcie bez problemów.
źródło
--log-syslog
do dziennika za pomocą opcji. Może powód: głównym systemem plików był btrfs.Twój problem to rozmiar_wątku_wysoka. Jeśli jest znacznie wyższa niż liczba rdzeni / wątków, nie będziesz w stanie poprawnie zamknąć systemu, chyba że użyjesz polecenia mysqladmin shutdown.
Np .: Masz 2 rdzenie CPU z 4 wątkami. Jeśli ustawisz 1-4 - będzie działać dobrze. Jeśli ustawisz go na 16, zgodnie z zaleceniami wielu blogów o „wysokiej wydajności”, zostanie on poocięty.
źródło
Miałem podobny problem z tym, że mysql / mariadb nie przestał działać , gdy systemd polecił to podczas zamykania lub wywołania ręcznego
sudo service mysql stop
.W moim przypadku uruchamiam system Ubuntu / Windows z podwójnym uruchomieniem w trybie UEFI, a te systemy operacyjne interpretują inny czas sprzętowy, więc oba systemy synchronizują się z internetowymi serwerami czasu podczas uruchamiania.
MySQL (i Mariadb) nie przestał działać, jeśli czas sprzętu zmienił się podczas jego działania.
Musisz odłożyć uruchomienie MySQL na czas po synchronizacji czasu. Najlepiej byłoby to zrobić, wstawiając tymczasową zależność od mysql,
After: time-sync
ale to nie działało dla mnie.Rozwiązanie, które zadziałało dla mnie (mysql można zastąpić mariadb dla tego samego efektu):
Wyłącz mysql przy pomocy
sudo systemctl disabled mysql.service
Utwórz skrypt (upewnij się, że jest wykonywalny), który po pewnym czasie uruchomi mysql
/usr/bin/delay_mysql
z zawartością:Utwórz usługę systemową, aby uruchomić nowy skrypt
/etc/systemd/system/delay_mysql.service
z zawartością:Zarejestruj swoją nową usługę za pomocą
sudo systemctl enable delay_mysql.service
Spowoduje to, że twój skrypt będzie działał na poziomach wielu użytkowników, które na Ubuntu wynoszą 3,4,5.
źródło
Tylko podczas kopiowania
mysql.service
musisz zrobićchmod
później.źródło
w moim przypadku było to niedopasowanie hasła dla użytkownika konserwacji
debian-sys-maint
między jednym w/etc/mysql/debian.cnf
jednym a jednym w bazie danych MySQL.Ten użytkownik jest używany do zamykania MySQL i innych funkcji. Po aktualizacji MySQL może się zdarzyć, że istnieje niezgodność przekazywania między plikiem a bazą danych. Może się to również zdarzyć, jeśli przeniesiesz bazę danych z jednego MySQL do drugiego. Jeśli zaimportujesz wszystkie bazy danych i użytkowników z innego MySQL na innym komputerze, musisz ponownie zsynchronizować
debian-sys-maint
hasło użytkownika konserwacji ( ).Musisz: sprawdzić aktualne hasło w pliku ubuntu / debian:
Możesz zobaczyć swoje hasło, którego system będzie używał tutaj:
password = n4aSHUP04s1J32X5
Następnym krokiem jest aktualizacja MySQL do tego samego hasła: Zaloguj się do MySQL:
Wpisz hasło, aby uzyskać dostęp do MySQL
Po tym nie ma już problemów z zamykaniem, nie trzeba czekać 10 minut, nie ma problemów z instalowaniem aplikacji korzystających z tego konta serwisowego, takich jak phpmyadmin.
AKTUALIZACJA: Więc niestety to nie rozwiązało problemu. Sprawiło, że było to trochę losowe - czasami mogę zatrzymać usługę bez problemu, innym razem zawiesi się po zatrzymaniu usługi.
źródło