Na Ubuntu 15.10, w pewnym momencie (być może po instalacji i usunięciu mariadb) mysql nie był w stanie działać. Zadania są w górę, ale serwer nie działa.
Na polecenie:
mysql -u root -p
odpowiedź systemu brzmi:
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Nie można się zalogować, nie znaleziono wtyczki, żadnych błędów w plikach konfiguracyjnych (wszystkie domyślnie).
Jak odzyskać kontrolę i uruchomić serwer mysql?
Odpowiedzi:
„Unix_socket” został wywołany przez proces uwierzytelniania mysql (być może związany z częściową migracją bazy danych do mariadb, teraz usunięty). Aby przywrócić wszystkie rzeczy do pracy, przejdź do su:
następnie wykonaj:
Spowoduje to całkowite zatrzymanie mysql, ominięcie uwierzytelnienia użytkownika (bez hasła) i połączenie się z mysql z użytkownikiem „root”.
Teraz w konsoli mysql przejdź do administracyjnej bazy danych mysql:
Aby zresetować hasło roota do mojego nowego hasła (zmień je według własnego uznania), po prostu upewnij się:
A ten zastąpi metodę uwierzytelniania, usunie żądanie unix_socket (i wszystko inne), przywracając normalną i działającą metodę hasła:
Wyjdź z konsoli mysql:
Zatrzymaj i uruchom wszystko związane z mysql:
Nie zapomnij o
exit
trybie su.Teraz serwer mySQL jest uruchomiony. Możesz się zalogować za pomocą roota:
lub cokolwiek chcesz. Używanie hasła działa.
Otóż to.
źródło
mysqld_safe
nie ma opcji jak…--skip-grant-tables
co daje?mysqld --verbose --help
mysqld_safe
narzekać na argument --skip-grant-tables nie istniałem, którego użyłemmysqld
. Jednak ciągle narzekał, że nie może utworzyć plików gniazd/var/run/mysqld/
. Sprawdziłem konfigurację apparmor i miała ona odpowiednie uprawnienia. W tym celu musiałem naprawićmkdir /var/run/mysqld/
, a następnie dać całkowicie otwarte uprawnienia:chmod -R 777 /var/run/mysqld/
. Następnie mógłbym w końcu uruchomić demona i zmienić wtyczkę na „mysql_native_password”.Oto moje kroki, aby to zrobić:
źródło