Jak zrestartować MySQL

32

Korzystam z MySQL 5.1.54 i zainstalowałem go na Ubuntu za pośrednictwem terminala za pomocą polecenia

sudo apt-get install mysql-server

Zmieniłem my.cnfplik i chciałbym zatrzymać, a następnie uruchomić bazę danych. Próbowałem następujące

sudo /usr/bin/mysqld_safe stop

Moje pytanie brzmi: skąd mam wiedzieć, że baza danych została zatrzymana? Po uruchomieniu powyższego polecenia następuje

sudo mysql -uuser -ppassword

Mogę zalogować się z powrotem do bazy danych. Czy nie powinien mi powiedzieć, że baza danych nie działa?

Jakieś sugestie? Dziękuję Ci.

EDYCJA: Próbowałem też

mysqladmin -uuser -ppassword shutdown

i wtedy

ps aux | grep mysql

Otrzymuję następujące dane wyjściowe

david    12093  0.0  0.0   6052  1276 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
root     12267  0.0  0.0   6396  1436 pts/1    T    May10   0:00 sudo nano /etc/mysql/my.cnf
root     12269  0.0  0.0   6052  1388 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
mysql    15371  0.3  0.1  55344  9088 ?        Ssl  10:53   0:00 /usr/sbin/mysqld
david    15512  0.0  0.0   5304   864 pts/1    R+   10:54   0:00 grep --color=auto mysql

Czy powyższe dane wyjściowe oznaczają, że MySQL został zamknięty? Jeśli uruchomię mysql -uuser -ppassword, nadal mogę zalogować się do mysql.

Jakieś sugestie?

David
źródło

Odpowiedzi:

64

Powinieneś naprawdę użyć skryptów inicjujących Sys-V znajdujących się w /etc/init.d.

Początek:

sudo /etc/init.d/mysql start

Zatrzymać:

sudo /etc/init.d/mysql stop

Uruchom ponownie / przeładuj konfiguracje:

sudo /etc/init.d/mysql restart

Sprawdź status uruchomienia:

sudo /etc/init.d/mysql status
Gerryk
źródło
1
Próbowałem tego i pojawia się następujący komunikat o błędzie: Zamiast wywoływać skrypty inicjujące przez /etc/init.d, użyj narzędzia service (8), np. Status mysql usługi
David
3
@David To jedyna poprawna odpowiedź. serviceto tylko mały program, który wyszukuje odpowiedni skrypt init.d dla Ciebie. Mimo, że wyświetla „komunikat o błędzie”, sudo /etc/init.d/mysql start/stopnadal wykonał swoją pracę. Korzystanie serviceto tylko „nowy sposób” korzystania ze skryptów startowych. Aby użyć service, po prostu wykonaj to na terminalu: service mysql stoplub uruchom.
BloodPhilia
@BloodPhilia, próbowałem service mysql stopi pojawia się następujący komunikat: Rejected send message, 1 matched rules; type="method_call", sender=":1.72" (uid=1000 pid=17673 comm="stop mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")). Jakieś pomysły?
David
2
@David Czy próbowałeś używać go z sudo? Jak sudo service mysql stop?
BloodPhilia
1
@BloodPhilia. Twoja sugestia zadziałała. Dziękuję za wyjaśnienia.
David
13

W maszynach Ubuntu możesz ponownie uruchomić mysql, używając obu poleceń:

 1. sudo /etc/init.d/mysql restart

 2. # service mysql restart
Gopinath
źródło
Również na Debianie. Ale pierwsze polecenie sprawiło, że wszystkie moje localhostnie działały. Musiałyby zostać zastąpione przez 127.0.0.1. Ten ostatni nie miał tego problemu.
MA-Maddin
3

Aby zamknąć mysql, uruchom:

mysqladmin -uuser -ppassword shutdown

gdzie użytkownik i hasło to hasło dla użytkownika z odpowiednim uprawnieniem WYŁĄCZANIE

Aby sprawdzić, czy został zamknięty:

ps aux | grep mysql

Jeśli pojawią się jakiekolwiek procesy (inne niż polecenie „grep”), nie zostało zamknięte.

DTest
źródło
Postępowałem zgodnie z instrukcjami i otrzymałem wynik. Zredagowałem moje pytanie, używając twojej procedury. Czy mogę powiedzieć, czy jestem na dobrej drodze?
David
Myślę, że zamknięcie zatrzymuje się, a następnie automatycznie uruchamia mysql. Czy istnieje polecenie, aby trwale zatrzymać mysql?
David
@David automatyczne ponowne uruchomienie nie jest zachowaniem zamknięcia mysqladmin. prawdopodobnie zachowanie /etc/init.d/mysql ubuntu? Nie jestem pewny. Myślę, że odpowiedź @ gerryk jest poprawna dla twojego systemu operacyjnego.
DTest
0

Aby to zrobić, możesz użyć komendy kill -9 „PID”, MySQL Process ID (PID), na którym możesz uruchomić ps -a lub najlepsze komendy. Następnie możesz uruchomić go ponownie, dzwoniąc ./"main process ”.

Diogo
źródło
Cześć, jestem nowy w wierszu poleceń i MySQL. Czy możesz mi pokazać dokładnie, co muszę wpisać w terminalu?
David
5
kill -9 jest trochę niegrzeczny, ponieważ nie pozwala po sobie wyczyścić procesu.
gerryk
1
Nie polecam tego robić. W zależności od tego, co robi MySQL w momencie, gdy nagle przestaje działać, możesz ponownie uruchomić niektóre niezadowolone bazy danych.
Xenoactive
0

narzędzie systemowectl dostępne domyślnie służy do zarządzania usługami w twoim systemie Linux. może być używany do uruchamiania, restartowania i zatrzymywania usług. Istnieją inne opcje, których możesz użyć. kasa systemctl?

systemctl stop mysql
systemctl start mysql
Shekhar
źródło
Dodaj szczegółowe informacje o tym, dlaczego to powinno pomóc. Odradzane są odpowiedzi niewytłumaczalne, co prawdopodobnie doprowadziło do przegłosowania.
kdb