Dlaczego nie mogę zatrzymać usługi MySQL na Debianie?


11

Właśnie próbowałem uaktualnić z squeeze Debiana do niestabilnego, zastępując „squeeze” na „unstable” w /etc/apt/sources.list. Aktualizacja przebiegła bezproblemowo, z wyjątkiem MySQL, który nie powiódł się, ponieważ nie mógł zatrzymać MySQL.

/etc/init.d/mysql stoppo prostu zwraca, że ​​nie powiodło się, ale jeśli spróbuję uzyskać status /etc/init.d/mysql status, wyświetli mi się ten błąd:

me@debian:~$ sudo /etc/init.d/mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

MySQL działa poprawnie i sprawdziłem uprawnienia dla debian-sys-maint w phpmyadmin i można robić wszystko, ale tylko się połączyć localhost.

Odpowiedzi:


6

Spróbuj tego:

  1. sudo cat /etc/mysql/debian.cnfi poszukaj hasła wymienionego w sekcjach [client]i[mysql_upgrade]

  2. mysql -u root -p password będące oryginalnym hasłem root MySQL

  3. GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';

  4. /etc/init.d/mysql restart

To jest poprawka i to jest uzasadnienie, jeśli jesteś zainteresowany.


Jak wspomniano poniżej, powinno to byćGRANT ALL PRIVILEGES ON *.*
Dave

2

Aktualizacja odpowiedzi. W kroku 3 musiałem użyć

GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';

Są gwiazdki w okresie po „ON”. Pracował dla MySql 5.1


1

Podręcznik MySQL mówi , że możesz to zrobić:

  1. Zaloguj się do systemu jako użytkownik systemu Unix, na mysqldktórym działa serwer (na przykład mysql).
  2. Znajdź .pidplik zawierający identyfikator procesu serwera. Dokładna lokalizacja i nazwa tego pliku zależą od dystrybucji, nazwy hosta i konfiguracji. Typowe lokalizacje są /var/lib/mysql/, /var/run/mysqld/i /usr/local/mysql/data/. Ogólnie nazwa pliku ma rozszerzenie .pidi zaczyna się od mysqldnazwy hosta lub systemu.

Możesz zatrzymać serwer MySQL, wysyłając normalne zabicie (nie zabij -9) do procesu mysqld, używając nazwy ścieżki pliku pid w następującym poleceniu:

    kill `cat /mysql-data-directory/host_name.pid`

Ta część: cat /mysql-data-directory/host_name.pidzwraca zawartość pliku, który jest identyfikatorem procesu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.