Mój problem zaczął się od tego, że nie mogę zalogować się jako root w mojej instalacji mysql. Próbowałem uruchomić mysql bez włączonych haseł ... ale za każdym razem, gdy uruchamiałem polecenie
# mysqld_safe --skip-grant-tables &
Nigdy nie odzyskam monitu. Próbowałem postępować zgodnie z tymi instrukcjami, aby odzyskać hasło .
Ekran wygląda tak:
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
i nie pojawia się monit o rozpoczęcie wpisywania poleceń SQL w celu zresetowania hasła.
Gdy go zabiję, naciskając CTRL+ C, pojawia się następujący komunikat:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Jeśli ponowię polecenie i pozostawię je wystarczająco długo, otrzymam następującą serię wiadomości:
root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#
Ale jeśli spróbuję zalogować się jako root, wykonując:
# mysql -u root
Otrzymuję następujący komunikat o błędzie:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Sprawdziłem i /var/run/mysqld/mysqld.sock
plik nie istnieje. Folder ma, ale nie plik.
Nie wiem też, czy to pomaga, czy nie, ale pobiegłem find / -name mysqld
i wymyśliłem:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Jestem nowy w Linuksie i MySQL, więc nie wiem, czy to normalne, czy nie. Ale dołączam te informacje na wszelki wypadek.
W końcu postanowiłem odinstalować i ponownie zainstalować mysql.
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
Po ponownej instalacji wszystkich pakietów w tej samej kolejności jak powyżej, podczas instalacji phpmyadmin, otrzymałem ten sam błąd:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Więc próbowałem ponownie odinstalować / zainstalować ponownie. Tym razem po odinstalowaniu pakietów ręcznie zmieniłem nazwy wszystkich plików i katalogów mysql na mysql.bad
odpowiednie lokalizacje.
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
Potem spróbowałem ponownie zainstalować mysql-server
i mysql-client
jeszcze raz. Ale zauważyłem, że nie monituje mnie o hasło. Czy nie należy prosić o hasło administratora?
/var/run/mysqld/mysqld.sock
brakuje. Problem, który połączyłeś, ma ten plik.Odpowiedzi:
Aby znaleźć wszystkie pliki gniazd w systemie, uruchom:
Mój system serwera Mysql miał otwarte gniazdo w
/var/lib/mysql/mysql.sock
Po znalezieniu miejsca otwierania gniazda dodaj lub edytuj linię do pliku /etc/my.cnf, podając ścieżkę do pliku gniazda:
Czasami skrypt uruchamiania systemu, który uruchomił plik wykonywalny wiersza poleceń, określa flagę
--socket=path
. Ta flaga może zastąpić lokalizację my.cnf, a to spowoduje, że gniazdo nie zostanie znalezione tam, gdzie wskazuje plik my.cnf. Następnie, gdy spróbujesz uruchomić klienta linii poleceń mysql, przeczyta my.cnf, aby znaleźć gniazdo, ale go nie znajdzie, ponieważ odbiega od miejsca, w którym serwer go utworzył. Tak więc, chyba że zależy ci na tym, gdzie znajduje się gniazdo, wystarczy zmienić plik my.cnf, aby pasował.Następnie zatrzymaj proces mysqld. To, jak to zrobisz, zależy od systemu.
Jeśli jesteś superużytkownikiem w systemie Linux, wypróbuj jedną z poniższych metod, jeśli nie znasz konkretnej metody używanej przez konfigurację MySQL:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
albops aux | grep mysql | grep -v grep
4969
zakończony za pomocąkill -9 4969
Po wykonaniu tej czynności możesz poszukać pliku pid
/var/run/mysqld/
i go usunąćUpewnij się, że uprawnienia w gnieździe są takie, że dowolny użytkownik mysqld jest uruchomiony i może do niego zapisywać / odczytywać. Prostym testem jest otwarcie go do pełnego odczytu / zapisu i sprawdzenie, czy nadal działa:
Jeśli to rozwiąże problem, możesz w razie potrzeby dostosować uprawnienia i własność gniazda w oparciu o ustawienia zabezpieczeń.
Ponadto katalog, w którym znajduje się gniazdo, musi być dostępny dla użytkownika uruchamiającego proces mysqld.
źródło
kill -9
; istnieje kilka sposobów, które należy wypróbować, zanim do tego dojdzie.ps -aux | grep mysqld
i sprawdź, czy są uruchomione inne procesy mysqlWypróbuj to polecenie,
źródło
sudo service mysqld start
sudo apt-get install mysql-server
jeśli jeszcze tego nieTen błąd występuje z powodu wielu instalacji mysql. Uruchom polecenie:
Zabij proces, używając:
a następnie uruchom polecenie:
Zabij również ten proces, uruchamiając:
Teraz jesteś w pełni ustawiony, po prostu uruchom następujące polecenia:
Znowu bardzo dobrze działający mysql
źródło
Rozwiązanie jest o wiele łatwiejsze.
mysql.sock
znajduje się twój plik. W moim przypadku było/opt/lampp/var/mysql/mysql.sock
sudo Nautilus
Uruchomi to menedżera plików z uprawnieniami superużytkownika
mysql.sock
plikumysqld.sock
a następnie kliknij plik prawym przyciskiem myszy i wytnij go/var/run
i utwórz folder o nazwiemysqld
i wprowadź gomysqld.sock
plik w/var/run/mysqld/mysqld.sock
:)źródło
sudo find / -type s
nie zawierają żadnychmysql.sock
?Wystarczy uruchomić usługę MySQL po instalacji:
W przypadku Ubuntu:
W przypadku CentOS lub RHEL:
źródło
sudo systemctl status mysql.service
isudo systemctl start mysql.service
. To działa dla mnieW Ubuntu występuje błąd w MySQL 5.6 i 5.7,
var/run/mysqld/
który znikałby za każdym razem, gdy usługa MySQL zatrzymywała się lub była restartowana. To w ogóle uniemożliwia działanie MySQL. Znalazłem to obejście, które nie jest idealne, ale przynajmniej uruchamia je po zatrzymaniu / ponownym uruchomieniu:źródło
# systemd tmpfile settings for mysql # See tmpfiles.d(5) for details
a następnie,d /var/run/mysqld 0755 mysql mysql -
po ponownym uruchomieniu, mysql powinien uruchomić się normalnie. To pochodzi z bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 , komentarz 3. Jeśli miałeś ten problem z MySQL 5.7, skomentuj Launchpad. Im więcej użytkowników zajmie się tym problemem, tym więcej uwagi na niego zwróci./etc/tmpfiles.d/mysql.conf
komentarza motocykla naprawiło ten problem. W systemie operacyjnym Centos 7 i przy użyciumysql Ver 15.1 Distrib 10.3.11-MariaDB,
.Dobra, po prostu skopiuj i wklej te kody: Należy to zrobić w terminalu, wewnątrz serwera, gdy baza danych mysql nie jest poprawnie zainstalowana, a gdy pojawia się błąd: „Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo” / var / run / mysqld / mysqld.sock '(2)'.
Zatrzymaj MySql
Uruchom go ponownie lub uruchom
Utwórz taki link i przekaż go do systemu
Uruchom bezpieczną instalację, która poprowadzi cały proces potrzebny do skonfigurowania mysql
źródło
Can't connect
pojawia się ten sam błąd, gdy próbuję uruchomić powyżej polecenia.Napotkałem ten sam błąd i stwierdziłem, że było to spowodowane aktualizacją pakietów, więc po ponownym uruchomieniu systemu usunąłem błąd.
Myślę, że ze względu na aktualizację bibliotek / pakietów SQL wystąpił błąd, więc spróbuj tego, jeśli robisz aktualizację :)
źródło
Istnieje wiele przyczyn tego problemu, ale czasami po prostu zrestartuj serwer mysql, rozwiąże to problem.
źródło
Używanie XAMPP na Ubuntu:
Utwórz folder o nazwie mysqld w katalogu / var / run . Możesz to zrobić za pomocą polecenia
sudo mkdir /var/run/mysqld
.Utwórz symboliczne łącze do pliku mysql.sock , który jest tworzony przez serwer XAMPP podczas jego uruchamiania. Możesz użyć polecenia
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
.Powodzenia! Mam nadzieję, że tym razem ci się uda.
źródło
Odpowiedź na krok ładowania użytkownika działała dla mnie. Czasami trzeba edytować plik w
/etc/mysql/my.cnf
wierszu dodawania do klientaźródło
mysql: unknown variable 'Host=127.0.0.1'
Host
muszą być pisane małymi literamihost
i będzie działać. Również to rozwiązanie działało dla mnie.* Błąd: „Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo” /var/run/mysqld/mysqld.sock '(2) ”
rozwiązania
na koniec odinstaluj i ponownie zainstaluj mysql. **
następnie zainstaluj ponownie przez
Po tej operacji zostanie wykorzystane 164 MB dodatkowego miejsca na dysku.
...... .......
W końcu dostaniesz te linie ....
Konfigurowanie libhtml-template-perl (2.95-1) ...
Konfigurowanie mysql-common-5.6 (5.6.16-1 ~ exp1) ... Przetwarzanie wyzwalaczy dla libc-bin (2.19-0ubuntu6) Przetwarzanie wyzwalaczy dla ureadahead (0.100.0-16) ...
I wtedy
root @ ubuntu1404: ~ # mysql -u root -p (dla każdego hasła najpierw należy użyć)
Wprowadź hasło:
Uwaga: Wprowadzone hasło powinno być takie samo jak hasło czasu instalacji mysql (takie jak .root, system, admin, rahul itp.)
Następnie wpisz
USE rahul_db (nazwa bazy danych);
Dzięki.**
źródło
mysql-server-5.6/5.5, mysql-client-5.6/5.5
. Dzięki!E: Package 'mysql-server-5.6' has no installation candidate
to nie istnieje w Ubuntu 18.04Upewnij się, że ścieżka do niedostępnego pliku gniazda jest taka sama jak „/var/run/mysqld/mysqld.sock”, w przeciwnym razie zmień ścieżkę jako swoją. Zatrzymaj mysqld
Jeśli proces nadal trwa;
Usuń katalog mysql, w którym ma zostać utworzone gniazdo. Dla mnie nie można go było usunąć, więc musiałem go zdecydowanie usunąć.
Ustaw własność na katalog
Uruchom mysql
Próba połączenia mysql
źródło
Myślę, że twój serwer MySQL się nie uruchomił. Więc uruchom serwer za pomocą jednego z następujących poleceń.
lub
źródło
Rozwiązanie tymczasowe
Może ktoś zmaga się z tym problemem. Korzystam z Mysql Workbench na Ubuntu 14 i dostałem ten błąd.
Znajdź plik gniazda, uruchamiając
sudo find / -type s
, w moim przypadku tak było/run/mysqld/mysqld.sock
Właśnie utworzyłem link do tego pliku w
tmp
katalogu.źródło
/tmp
folderze, więc na pewno zostanie usunięty. Możesz zmienić.sock
lokalizację pliku. Zobacz odpowiedź @ user3002884.można znaleźć
mysqld.sock
w/var/run/mysqld
jeśli masz już zainstalowanymysql-server
przezsudo apt-get install mysql-server
źródło
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
w
/etc/my.cnf
dodatek to linie:I uruchom ponownie usługę za pomocą:
service mysql restart
to działało dla mnie
źródło
Zostało to już wspomniane kilka razy, ale zadziałało to od razu:
usługa mysql restart
źródło
W moim przypadku działały dwa procesy mysqld. Zabiłem opcjonalne procesy za pomocą pkill -9 mysqld
źródło
Jeśli masz wiele baz danych i tabel w systemie, a jeśli
innodb_file_per_table
ustawiłeś w my.cnf, to na twoim serwerze mysql mogło zabraknąć otwartych obiektów / plików (a raczej deskryptorów dla tych obiektów) Ustaw nową maksymalną liczbę zi zrestartuj mysql. Takie podejście może pomóc, gdy gniazdo nie jest w ogóle tworzone, ale tak naprawdę może to nie być prawdziwy problem, istnieje problem podstawowy.
źródło
Właśnie miałem ten problem na Ubuntu 14.10
Zakręty, które
mysql-server
nie były już zainstalowane (jakoś zostały usunięte), ale nie mogłem go po prostu zainstalować, ponieważ wystąpiły zepsute pakiety i problemy / konflikty zależności.W końcu musiałem ponownie zainstalować mysql
źródło
Odinstalowałem mysql w Ubuntu 16.04 /ubuntu/172514/how-do-i-uninstall-mysql
Ponownie zainstalowałem mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04
To wydawało się działać.
źródło
Moje rozwiązanie;
Ubuntu 18.04 (WSL)
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
Zmieniłem port. To zadziałało dla mnie. Możesz napisać inny port. Przykład 3355
źródło
Dlaczego pojawia się ten błąd
Otrzymałem nowe aktualizacje bibliotek mysql, więc zaktualizowałem system operacyjny Kubuntu po otrzymaniu tych błędów.
Polecenia, które wypróbowałem i jak to naprawiłem.
Serwer MySql działa poprawnie, ale kiedy próbowałem połączyć jego dawanie
Sprawdziłem
/var/run/mysqld/mysqld.sock'.
ten katalog. Moje pliki nie istniały.Próbowałem także połączyć te polecenia, ale nie działało to dla mnie.
Po marnowaniu około 2 godzin znalazłem rozwiązanie
Potem wszystko dla mnie naprawione.
źródło
Zmiana
host
na127.0.0.1
pracował dla mnie.Zmodyfikuj plik
/etc/mysql/my.cnf
i dodaj poniższy wiersz do sekcji:client
Po zakończeniu. Wykonaj następujące polecenie.
źródło
Sprawdziłbym również konfigurację mysql. Miałem ten problem z własnym serwerem, ale byłem zbyt pochopny i źle skonfigurowałem rozmiar innodb_buffer_pool_size dla mojego komputera.
innodb_buffer_pool_size = 4096M
Zwykle działa dobrze do 2048 roku, ale chyba nie mam pamięci potrzebnej do obsługi 4 koncertów.
Wyobrażam sobie, że może się to zdarzyć również przy innych ustawieniach konfiguracji mysql.
źródło
Miałem podobny problem na CentOS VPS. Jeśli MySQL nie uruchamia się lub zawiesza się zaraz po uruchomieniu, spróbuj wykonać następujące czynności:
1) Znajdź plik my.cnf (mój znajdował się w /etc/my.cnf) i dodaj wiersz:
innodb_force_recovery = X
zamieniając X na liczbę od 1 do 6, zaczynając od 1, a następnie zwiększając, jeśli MySQL się nie uruchomi. Ustawienie 4, 5 lub 6 może usunąć twoje dane, więc bądź ostrożny i przeczytaj http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html wcześniej.
2) Uruchom ponownie usługę MySQL. Uruchomi się tylko SELECT, co jest normalne w tym momencie.
3) Zrzuć wszystkie bazy danych / schematy za pomocą mysqldump jeden po drugim, nie kompresuj zrzutów, ponieważ i tak będziesz musiał je rozpakować później.
4) Przenieś (lub usuń!) Tylko katalogi bd wewnątrz / var / lib / mysql, zachowując poszczególne pliki w katalogu głównym.
5) Zatrzymaj MySQL, a następnie usuń komentarz z linii dodanej w 1). Uruchom MySQL.
6) Odzyskaj wszystkie bd zrzucone w 3).
Powodzenia!
źródło
Wypróbuj następujące polecenia w oknie terminala:
Gdy to pozwoli, możesz utworzyć nowego użytkownika i nadać odpowiednie uprawnienia do konkretnej bazy danych, do której potrzebuje on dostępu.
Mysql 5.7 zmienił niektóre rzeczy i domyślnie używa wtyczki auth_socket (w przeciwieństwie do mysql_native_password) do rootowania, aby chronić konto przed włamaniem. Możesz to zmienić, ustawiając pole wtyczki dla roota, ale chyba że masz bardzo dobry powód, prawdopodobnie nie powinieneś obchodzić ochrony. Zwłaszcza, gdy
sudo mysql
jest to łatwiejsze niżmysql -u root -p
jakkolwiek.Znalazłem te informacje - ze wszystkich miejsc - ze strony pomocy Raspberry Pi . Działało jak urok po tym, jak Lubuntu 18.04 zirytowało mnie na kilka godzin.
źródło
Najpierw utwórz katalog / var / run / mysqld
z poleceniem:
następnie dodaj prawa do reż
po tej próbie
źródło
Miałem dokładnie ten sam problem. Po trudach przez godzinę znalazłem sposób na poprawienie go bez ponownej instalacji mysql-common, mysql-client, mysql-server.
Przede wszystkim przejdź do „/ var / run / mysqld”. Przekonasz się, że mysql.sock nie istnieje. Po prostu usuń cały katalog mysqld, utwórz go ponownie i zapewnij niezbędne uprawnienia.
Teraz zabij proces mysql w całości. Możliwe, że wyświetli się komunikat „oczekiwanie na czyszczenie strony” po uruchomieniu polecenia „/etc/init.d/mysql status” nawet po wyłączeniu usługi.
Aby całkowicie zamknąć usługę, użyj
Po zakończeniu procesu spróbuj uruchomić go ponownie przy użyciu
I zobaczysz, że działa dobrze! A także nie będzie problemu z jego zatrzymaniem.
źródło