Baza danych MySQL jest bezproblemowa od kilku miesięcy. Dzisiaj, kiedy sprawdziłem pakiety, które można aktualizować za pomocą Menedżera pakietów Synaptic, pojawiły się różne komponenty MySQL (-common, -client, -server itp.). Dlatego zdecydowałem się na aktualizację (zapomniałem zauważyć zainstalowaną wersję, ale myślę, że była to wersja 5.6.21) do wersji 5.6.25-1-ubuntu2.0. Następnie, kiedy przeszedłem do bazy danych, otrzymałem komunikat:
Error occured: Can't connect to MySQL server on '127.0.0.1' (111)
Potem odkryłem, że serwer nie działa. W pliku dziennika uważam, że komunikat: -
Can't create file /var/lib/mysql/user.lower-test
Spędziłem około godziny na wyszukiwaniu w sieci i chociaż problem został już wcześniej zgłoszony, nie widziałem go w kontekście problemu „po aktualizacji”, więc nie jestem pewien, czy mam następny krok.
apparmor
jest instalowany automatycznie i włączany podczas instalacjimysql-server-5.6
. Nawet jeśli wcześniej go dezaktywowałeś. Nie można usunąćapparmor
pakietu, ponieważ jest on zależny odmysql-server-5.6
. Możesz rozwiązać błąd „Nie można utworzyć pliku /var/lib/mysql/user.lower-test”, wykonującservice apparmor stop; service apparmor teardown; update-rc.d -f apparmor remove
Wystąpił ten problem podczas próby uruchomienia wielu instancji MySQL, ale zamiast usunąć apparmor zaktualizowałem plik usr.sbin.mysqld:
Na przykład tak wygląda mój plik, a kiedy dodałem foldery, które wymagają uprawnień do zapisu, wszystko działało tak, jak powinno.
źródło
Problem przydarzył mi się, gdy próbowałem przenieść / var / lib / mysql na inny dysk i zastąpić oryginalny katalog dowiązaniem symbolicznym.
Apparmor odmówi dostępu w tej konfiguracji patrz
dlaczego twórcy Apparmor nie uważają tego za błąd. Obejście polega na użyciu uchwytu bind. Widzieć
dla wyjaśnienia.
Więc
naprawiono problem dla mnie.
źródło
Miałem podobny problem. Ponownie zainstalowałem Ubuntu Server na moim komputerze, wykonałem pełną kopię zapasową pliku / etc / na dysku twardym, po ponownej instalacji zrobiłem kopię wszystkich ważnych plików z / drive / etc / do moich systemów / etc.
Robiąc to, stworzyłem bak dla pliku usr.sbin.mysqld o nazwie usr.sbin.mysqld.bak i trzymałem go w tym samym katalogu /etc/apparmor.d/.
Po dalszych poszukiwaniach znalazłem ten post na blogu: https://blogs.oracle.com/jsmyth/apparmor-and-mysql
Zainstalowałem apparmor-utils i próbowałem narzekać na / usr / sbin / mysqld i powiedziałem, że mam zdefiniowane 2 konfiguracje apparmor (oba moje pliki).
Wiem, że może to nie być problem, z którym się borykasz, ale dla jasności nie bądź tak głupi, jak ja, tworząc plik kopii zapasowej w tym samym katalogu katalogu apparmor sbin.
źródło
Sprawdź także, czy Twoja partycja nie jest pełna, co miało miejsce w moim przypadku.
Z nieznanego powodu przenoszenie danych na inną partycję również nie działało.
Więc dla szybkiej naprawy, zamiast zadzierać z llvm lub gparted, zmniejszyłem swój
/swapfile
rozmiar.źródło