MySQL 5.7 Brak katalogu, logowanie za pomocą HOME = /

17

Przykro mi, jeśli pytanie zostało już zadane, ale nie mogę znaleźć rozwiązania tego (być może małego) problemu:

Właśnie wykonałem nową instalację mysql-server 5.7 na serwerze 14.04. Przy każdym uruchomieniu usługi MySQL pojawia się ten błąd:

root@xxx:/etc/mysql# service mysql restart
 * Stopping MySQL Community Server 5.7.11
...
 * MySQL Community Server 5.7.11 is stopped
 * Re-starting MySQL Community Server 5.7.11
No directory, logging in with HOME=/
..
 * MySQL Community Server 5.7.11 is started

Co to znaczy? Czy muszę ustawić katalog domowy użytkownika „mysql”? (a jeśli tak, jaki jest najlepszy wybór? / home / mysql ??) Teraz jest to / nieistniejące:

mysql:x:110:106:MySQL Server,,,:/nonexistent:/bin/false

ale mam inną maszynę z tym samym / nieistniejącym i nie wyświetla żadnego błędu ...

nakrętki
źródło
1
/ var / log / mysql ;-) patrz: askubuntu.com/questions/539440/…
Rinzwind
ok, w moim przypadku zaczęło się i wydaje się, że działa dobrze, pokazuje tylko ten komunikat
the_nuts

Odpowiedzi:

32

Mając ten sam problem, aby pozbyć się tego błędu, zrobiłem następujące

  1. Zatrzymaj usługę MYSQL:

    sudo service mysql stop

  2. Zmień katalog domowy mysql z nieistniejącego na oryginalny katalog, w którym powinien być:

    sudo usermod -d /var/lib/mysql/ mysql

Teraz uruchom ponownie serwer mysql za pomocą:

sudo service mysql start

Komunikat o błędzie zniknął. Jednak dlaczego tak się dzieje, nie jest znane.

Abdul Hayee
źródło
1
To może być obejście, ale nie zgadzam się z tym. / home / jest dla użytkowników. Nie do tworzenia miejsca dla fałszywych użytkowników, którzy są potrzebni do bezpieczeństwa / uprawnień / czegokolwiek. Osoba sugerująca / home / mysql i tworząca faktycznego użytkownika mysql powinna zostać poważnie upomniana .
Rinzwind
/ var / lib o / var / log? W każdym razie wydaje się, że ten katalog nie jest zapełniany żadnymi danymi
the_nuts
2
tak, to jest obejście problemu, daj mi znać, kiedy znajdziesz rozwiązanie.
Abdul Hayee
1
Zgodnie z tym postem Red Hat ma ustawiony katalog domowy mysql na /var/lib/mysql. Więc wydaje się to w porządku ....
ostrokach
2
Jeśli chodzi o wartość, dostałem ten błąd, gdy korzystałem z mysql w Windows WSL. Błąd przestał występować po zamknięciu programu mysqld.exe w systemie Windows. Port 3306 został zajęty przez proces systemu Windows.
Azeirah
0

Chciałbym również zaproponować trwałe rozwiązanie, jeśli zawsze będzie działało z tego samego katalogu, jak przypuszczam, że powinno to dlaczego nie edytować użytkownika mysql w / etc / passwd:

mysql:x:106:111:MySQL Server,,,:/var/lib/mysql/:/bin/false
h.safe
źródło