Otrzymuję ten błąd podczas próby zalogowania się do MySQL z wiersza poleceń:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Myślę, że to oznacza, że MySQL nie został jeszcze uruchomiony. Więc staram się to uruchomić:
sudo /etc/init.d/mysql start
i dostaję tę wiadomość:
* Starting MySQL database server mysqld [fail]
Gdzie szukać / co zrobić, aby uruchomić MySQL? Używam Ubuntu 8.04 i zainstalowałem MySQL poprzez apt-get. Byłem w stanie go uruchomić i użyłem go kilka razy, więc nie wiem, dlaczego przestał działać.
Aktualizacja: Po uruchomieniu statusu sudo /etc/init.d/mysql pojawia się komunikat:
* MySQL is stopped.
Aktualizacja nr 2: Moje pliki dziennika (/var/log/mysql.log & /var/log/mysql.err) są puste (jeśli są właściwe)
Odpowiedzi:
Na Ubuntu 12.04 miałem ten sam problem po zmianie rozmiarów buforów w pliku /etc/mysql/my.cnf, myślę, że trochę mnie poniosło. W każdym razie po próbie zmiany ich z powrotem na domyślne ustawienie MySQL nadal nie chce się uruchomić.
Próbowałem rozwiązać kilka różnych metod, zauważyłem, że brakuje pliku /var/run/mysql/mysql.sock. Może to być problem, więc możesz to sprawdzić, a jeśli go nie ma, możesz go zastąpić, wykonując następujące czynności:
To NIE naprawiło problemu dla mnie! Ale może dla niektórych.
Musiałem całkowicie przeinstalować MySQL, aby to zrobić, musisz użyć polecenia sudo. Kroki do całkowitego usunięcia i ponownej instalacji MySQL są następujące:
Usuń MySQL
Opcjonalnie można użyć aptitude, zastępując apt-get --purge z takiego
Sprzątać
Usuń MySQL reż
Zainstaluj MySQL
MySQL powinien teraz działać, możesz to sprawdzić, wykonując następujące czynności:
Powinieneś zobaczyć
Mam nadzieję, że to pomaga i pomyślałem, że mogę dodać po zrobieniu tego wszystkie moje bazy danych i tabele, które są nadal dostępne, jednak musiałem odtworzyć użytkowników i hasła do tych baz danych.
Uwaga: Jeśli posiadasz rozszerzenie mysql dla php, musisz je również zainstalować ponownie.
źródło
sudo touch /var/run/mysqld/mysqld.sock
i dowiedziałem się o tym od końca/var/log/syslog
(np. Zmiana na mysqld)/var/run/mysqld
czy/var/run/mysql
?OSTRZEŻENIE: Jest to niebezpieczne, twój mysql NIE będzie bezpieczny i każdy będzie mógł łączyć, edytować itp. Tabele, nie pozostawiaj serwera działającego z tym poleceniem.
Spróbuj uruchomić go w trybie awaryjnym:
/usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables
Jeśli to zadziała, mogą występować problemy z twoją informacją lub schematem (tabelami) mysql. Jeśli to nie działa, oznacza to, że coś jest nie tak z instalacją.
źródło
sudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables
Sprawdź swoje pliki dziennika jak w innych odpowiedziach. Sprawdź także, czy masz wystarczającą ilość (lub jakiekolwiek miejsce na dysku). MySQL może zachowywać się w ten sposób na pustej partycji.
df -h
Jeśli tak nie jest, sprawdź dokumentację MySQL dotyczącą debugowania serwera . Ich
myisamchk
(jeśli używasz MyISAM) jest szczególnie przydatny.źródło
Niedawno dostałem ten problem po aktualizacji Ubuntu. Nie jestem jeszcze pewien, na czym dokładnie polega problem. Jednym z problemów, które działało w tej chwili, aby uruchomić mysql, było:
To sprawia, że działa, wskazując, że apparmor zatrzymał działanie mysql, i wyjaśniając, dlaczego dzienniki są prawdopodobnie również puste: mysql nie mógł działać.
Pozostaje to dziwnym problemem, ponieważ do tej pory nie ma „skarg” z tego
/var/log/apparmor
powodu, a jedynym wpisem dotyczącym kontroli w kern.log jest zmiana profilu na tryb narzekań.Zauważ, że robiąc to, dodałem również (pusty)
/etc/apparmor.d/local/usr.sbin.mysql
plik, ponieważ rozkazujący aa narzekał, że nie znalazł tego pliku.źródło
Miałem ten sam problem z moją kroplą 512 MB Digital Ocean.
Okazało się, że jest to spowodowane niewystarczającą pamięcią.
Natychmiastowym rozwiązaniem jest ponowne uruchomienie innych usług w celu zwolnienia pamięci, np.
Mamy nadzieję, że przy wystarczającej ilości pamięci możesz ponownie uruchomić mysql
Długofalowym rozwiązaniem jest uzyskanie większej ilości pamięci RAM lub utworzenie pamięci wymiany .
źródło
Spójrz na swoje pliki dziennika. Przynajmniej na Debianie, logujesz się do mysql *
/var/log
.źródło
Miałem ten sam problem, okazało się, że rozwiązanie wpatrywało się we mnie w twarz. Napęd był pełny. Nie dostajesz dzienników, ponieważ nie ma gdzie je zapisać .....
źródło
Ten sam problem nękał mnie od wieków na Ubuntu 12.04 Digital Ocean VPS z mysql 5.6 zainstalowanym z PPA. Symptomy polegały na tym, że plik mysql.sock został
/var/run/mysqld/mysql.sock
usunięty, ale nigdy nie został ponownie utworzony, więc musiałem ręcznie uruchamiać następujące polecenia przy każdej aktualizacji mysql lub ponownym uruchomieniu serwera:To było z odpowiedzi Kyle'a C (z wyjątkiem mysqld zamiast mysql). W końcu obniżyłem wersję mysql 5.5, która pojawia się, gdy normalnie wykonasz
sudo apt-get install mysql-server
polecenie. Nie było to jednak proste, oto co musiałem zrobić:Mam nadzieję, że pomoże to komuś cierpiącemu na taki sam ból.
źródło
sądzę, że to może pomóc innym ... więc oto jest.
Chciałem migrować mój mysql 5.5 (domyślny ubuntu) do nowego 5.7
(chciałem grać z nowym rodzimym typem JSON)
Postępowałem zgodnie z instrukcjami, aby zainstalować najnowszą wersję ....
ale MySQL nie chciał się uruchomić.
Spędziłem trochę czasu, szukając, a następnie znalazłem ten wiersz w
/var/log/mysql/errors.log
:unknown variable 'key_buffer=16M'
i jest to coś, co jest ustawione,
/etc/mysql/my.cnf
że podczas aktualizacji zdecydowałem się zachować.Tak, że po dość proste:
zastąpić Moje strony
my.cnf
zmy.cnf.dpkg-dist
wersji znajduje się w tym samym katalogu ...Potem musiał biec
sudo mysql_upgrade -u root -p sudo service mysql restart
a teraz MySQL jest ponownie uruchomiony
źródło
Znaleziono inną odmianę tego, co może być nie tak. Przeniosłem katalog danych i okazało się, że zapomniałem otworzyć katalog dla użytkownika mysql, który również zawiedzie bez żadnego wyjścia. Oczywiście z perspektywy czasu źle, ale brak komunikatu o błędzie sprawia, że każdy trywialny problem jest trudny do znalezienia.
źródło