Zainstalowałem LAMP na Ubuntu 12.04 LTS (Precise Pangolin), a następnie ustawiłem hasło roota na phpMyAdmin . Zapomniałem hasła i teraz nie mogę się zalogować. Kiedy próbuję zmienić hasło przez terminal, otrzymuję:
BŁĄD 2002 (HY000): Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo „/var/run/mysqld/mysqld.sock” (2)
Jak mogę to naprawić? Nie mogę otworzyć LAMP, odinstalować go ani zainstalować ponownie.
mysql
phpmyadmin
lamp
forgot-password
mysql-error-2002
sushmit sarmah
źródło
źródło
Odpowiedzi:
Kiedyś miałem ten problem i rozwiązałem go, instalując
mysql-server
, więc upewnij się, że zainstalowałeśmysql-server
, a niemysql-client
coś innego.Ten błąd oznacza, że plik
/var/run/mysqld/mysqld.sock
nie istnieje, jeśli nie został zainstalowanymysql-server
, plik nie istniałby. W takim przypadku zainstaluj go za pomocąAle jeśli
mysql-server
jest już zainstalowany i działa, musisz sprawdzić pliki konfiguracyjne.Pliki konfiguracyjne to:
W
/etc/my.cnf
, konfiguracja pliku gniazda może być,/tmp/mysql.sock
aw/etc/mysql/my.cnf
konfiguracji pliku gniazda może być/var/run/mysqld/mysqld.sock
. Więc usuń lub zmień nazwę/etc/mysql/my.cnf
, pozwól mysql użyć/etc/my.cnf
, wtedy problem może zostać rozwiązany.źródło
sudo apt-get install mysql-server
zainstalować mysql na ubuntuSpróbuj tego:
Ponadto (aby sprawdzić, czy działa):
Prawdopodobnie jest to po prostu błędna konfiguracja
my.cnf
pliku/etc/somewhere
(w zależności od dystrybucji Linuksa ).źródło
/etc/my.cnf
i komentować#bind-address = 127.0.0.1
Reference 1 Reference 2 . Wtedy mógłbym się połączyć. Po tym zdałem sobie sprawę, że dostaję teraz ten błąd z 2002 roku, który zaprowadził mnie do tej odpowiedzi i teraz znów działa. Zdecydowanie zgadzam się z tobą, otrzymując wyjaśnienie, dlaczego po prostu pisaćmysql
bez-h
zgłaszania błędu.mysql -h localhost
nie działa. Pamiętaj, aby użyćmysql -h 127.0.0.1
zgodnie z odpowiedzią.Widzę wszystkie te odpowiedzi, ale żadna z nich nie oferuje opcji resetowania hasła i żadnej zaakceptowanej odpowiedzi . Rzeczywistym pytaniem jest to, że zapomniał hasła, więc musi się zresetować, nie sprawdzać, czy jest uruchomiony, czy nie (zainstalowany czy nie), jak sugeruje większość tych odpowiedzi.
Aby zresetować hasło
Wykonaj następujące kroki (może być pomocne, jeśli naprawdę zapomniałeś hasła i możesz je wypróbować w dowolnym momencie, nawet jeśli nie jesteś w takiej sytuacji):
Zatrzymać
mysql
Lub dla innych wersji dystrybucji:
Uruchom MySQL w trybie awaryjnym
Zaloguj się do MySQL przy użyciu roota
Wybierz bazę danych MySQL do użycia
Zresetuj hasło
Opróżnij uprawnienia
Uruchom ponownie serwer
Zatrzymaj i uruchom serwer ponownie
Ubuntu i Debian:
W CentOS, Fedorze i RHEL:
Zaloguj się przy użyciu nowego hasła
Wpisz nowe hasło i ponownie ciesz się serwerem, jakby nic się nie wydarzyło
To zostało zaczerpnięte z Resetuj hasło root MySQL .
źródło
repair table user use_frm
udało mi się rozwiązać ten problem. - stackoverflow.com/questions/4297592/…update user set authentication_string=password('mynewpassword') where user='root';
Próbowałem następujących kroków:
super user
lub użyjsudo
/etc/mysql/my.cnf
za pomocą geditbind-address
i zmień jego wartość na adres IP komputera hosta serwera bazy danych. Dla mnie to byłlocalhost
lub127.0.0.1
sudo service mysql start
I zadziałało dla mnie.
źródło
Rozwiązałem ten problem, wykonując następujące polecenie:
A jeśli używasz komputera Mac i użyłeś naparu do zainstalowania mysql, po prostu użyj:
źródło
Miałem podobny problem. mysql nie chce się uruchomić:
Jeśli wyłączyłem zbroję:
problem zniknął. Problem polegał na tym, że mysqld próbował uzyskać dostęp do /run/mysqld/mysqld.sock, ale profil apparmor dał tylko zgodę na /var/run/mysqld/mysqld.sock (/ var / run jest symlinkowany do / run, więc są to w rzeczywistości to samo). Nie jestem pewien, dlaczego mysqld nie używa ścieżki var, ponieważ jest to ustawione we wszystkich plikach konfiguracyjnych, ale możesz rozwiązać problem, dodając następujące informacje do /etc/apparmor.d/usr.sbin.mysqld
źródło
W moim przypadku dysk był pełny i mysqld nie mógł się już uruchomić.
Spróbuj ponownie uruchomić usługę mysql.
lub
Jeśli nie rozpoznaje
stop
polecenia, to zdecydowanie jest to miejsce na dysku. Powinieneś sprawić, aby część partycjimysql
została przydzielona lub powiększyć dysk.Sprawdź miejsce na dysku za pomocą
źródło
Rozwiązałem to, zabijając
mysql
proces:A potem ponownie uruchomiłem serwer z:
Ale
start
działa również:Potem zalogowałem się
admin
i skończyłem.źródło
W jakiś sposób proces serwera MySQL nie utworzył gniazda lub klient szuka gniazda w niewłaściwym miejscu.
Moją pierwszą sugestią byłoby sprawdzenie, czy serwer MySQL jest uruchomiony. Druga sugestia może brzmieć: czy serwer MySQL działa na innym hoście? Jeśli tak, dodaj
-h <hostname>
flagę do swojego klienta MySQL w terminalu.Jeśli MySQL rzeczywiście działa i działa lokalnie, sprawdź swój
my.cnf
plik. Powinna być taka liniaSprawdź, czy odpowiada to lokalizacji gniazda, o której wspomniałeś w swoim poście.
Z doświadczenia powiedziałbym, że najbardziej prawdopodobnym scenariuszem jest to, że twój serwer MySQL albo w ogóle nie działa, albo nie działa na tym samym hoście, na którym uruchamiasz klienta MySQL z terminala.
źródło
Ten sam problem wystąpił po ponownym uruchomieniu serwera produkcyjnego. Używam Debiana 8.1 (Jessie) na kropli DigitalOcean.
Oto, co zrobiłem, aby rozwiązać problem:
Sprawdź, czy plik
/var/run/mysqld/mysqld.sock
istnieje. Jeśli nie, ręcznie utwórz go, wprowadzająctouch /var/run/mysqld/mysqld.sock
(co musiałem zrobić).Tak więc proces MySQL może korzystać z tego pliku. Zmień własność tego pliku, wprowadzając
chown mysql /var/run/mysqld/mysqld.sock
.Po wykonaniu „2” uruchom ponownie usługę MySQL, wprowadzając
service mysql restart
lub/etc/init.d/mysql restart
.Po wykonaniu powyższych kroków mój problem został rozwiązany. Rzadko mam ten problem i prawdopodobnie istnieje lepszy sposób, więc w razie potrzeby zapewnij konstruktywną informację zwrotną :).
źródło
Twój serwer mysql może nie działać. Upewnij się, że działa, wpisując
mysql.server start
w terminalu.źródło
Sprawdź
"bind-adress"
parametr w my.cnf.W przeciwnym razie spróbuj z poleceniem:
-h dla hosta
127.0.0.1
, czyli localhost-P (zauważ -P jako wielkie litery) dla portu
3306
, czyli domyślnego portu dla MySQLźródło
Oto, co zadziałało dla mnie:
To tworzy link.
źródło
Jeśli używasz Amazon EC2 i masz ten problem w instancji, musisz tylko:
Amazon EC2 nie ma zainstalowanego serwera (zainstalowany jest tylko klient), więc w takim przypadku musisz zainstalować go na swojej instancji, a następnie spróbuj
aby sprawdzić, czy to zadziałało.
źródło
Myślę, że ilekroć pojawi się błąd
Polecę najpierw sprawdzić, czy twój
mysql
demon działa ... Przez większość czasu domyślnie nie działa. Możesz to sprawdzić przez/etc/init.d/mysqld status
.Jeśli nie działa, uruchom go najpierw:
Założę się, że będzie działać w 110%.
źródło
Zamiast używać localhost:
Użyj 127.0.0.1
(zwróć również uwagę, brak spacji między -p a mypassword)
Cieszyć się :)
źródło
127.0.0.1
działa, alocalhost
nie działa ?!Upewnij się, że masz kopie zapasowe ważnych baz danych, a następnie spróbuj odinstalować rzeczy związane z MySQL :
Następnie zainstaluj go ponownie :
To działało dla mnie i dane zostały zachowane.
Jeśli PHP MySQL pokazuje błędy, być może będziesz musiał ponownie zainstalować PHP MySQL :
źródło
Mam również ten sam problem, który wystąpi, jeśli twój
mysql server
domyślnie nie działa, ponownie zatrzyma się po kilku sekundach, więc ponownie uruchom$ sudo service mysql start
komendę ( ), którą możesz zmienić, jeśli wiesz.dla tego polecenia użycia
(w razie potrzeby wpisz hasło użytkownika, ponieważ korzystamy
sudo
), a następnie uruchomteraz masz swoją bazę danych
źródło
Jeśli twoja instalacja była ostatnia, powinieneś potwierdzić, czy jest to SERWER instalacyjny ... jako mysql-server-5.5 .. Może zainstalowałeś tylko „mysql” .. to jest tylko klient zamiast serwera.
źródło
Jeśli masz XAMPP zainstalowany na komputerze z systemem Linux, spróbuj skopiować
my.cnf
plik z./opt/lampp/etc/my.cnf
Do/etc/my.cnf
.Następnie uruchom
mysql -u root
ponownie ... Powinieneś mieć teraz prawidłowe gniazdo i móc uruchomić klienta MySQL.źródło
Mam też ten problem, ale właśnie:
To zadziałało dla mnie.
źródło
ZNALAZŁEM ROZWIĄZANIE
Przed uruchomieniem polecenia:
mysql_secure_installation
sudo systemctl stop mariadb
sudo systemctl start mariadb
mysql_secure_installation
Następnie poprosi o hasło roota, a następnie wystarczy nacisnąć klawisz Enter i ustawić nowe hasło roota.
źródło
W moim przypadku domyślny port 3306 był używany przez jakiś inny proces i dlatego się nie uruchamiał. Po tym, jak przestałem korzystać z innych usług
sudo service mysql start
, zadziałało dobrze. BTW, możesz użyć czegoś takiego,sudo lsof -Pn -iTCP:3306
aby zobaczyć, kto może korzystać z portu.źródło
W moim przypadku działało to poprzez wykonanie badań i rozwoju:
Jestem w stanie połączyć się z MySQL za pomocą
Ale to nie działa
mysql -u root -p
.Nie znalazłem żadnego
bind-address
w moim.cnf . Wyceniłem więc parametr,socket=/var/lib/mysql/mysqld.sock
wmy.cnf
którym powodowałem problem z logowaniem.Po ponownym uruchomieniu usługi poszło dobrze:
źródło
Rozwiązałem ten problem z restartem MySQL
/etc/init.d/mysql stop
i
/etc/init.d/mysql start
Otóż to.
źródło
Z doświadczenia mówię, że musisz najpierw sprawdzić, czy serwer działa, a następnie spróbować skonfigurować MySQL. Ostatnim rozwiązaniem jest ponowna instalacja MySQL.
źródło
Otwórz terminal i wpisz:
Zarówno klient podstawowy bazy danych MySQL, jak i pakiety MySQL Server będą miały tę samą wersję 5.5. MySQL Client 5.5 i MySQL Server 5.5 są aktualnymi „najlepszymi” wersjami tych pakietów w Ubuntu 14.04, zgodnie z ustaleniami opiekunów pakietów.
Jeśli wolisz zainstalować MySQL Client 5.6 i MySQL Server 5.6, możesz także znaleźć pakiety mysql-client-core-5.6 i mysql-server-5.6 w Centrum oprogramowania Ubuntu. Ważne jest, aby numery wersji klienta i serwera były zgodne w obu przypadkach.
To zadziałało dla mnie.
źródło
Sprawdź, czy masz odpowiednie prawa:
Miałem te same problemy i to działało dla mnie. Po wykonaniu tej czynności mogłem uruchomić MySQL.
źródło
W moim przypadku wygląda na to, że nie byłam w stanie zabić procesu mysql, kiedy działam
Proces mysql zawsze tam był, wygląda na to, że blokował plik gniazda, a nowy proces mysql nie był w stanie go utworzyć.
więc to pomogło
Teraz jestem w stanie zalogować się do bazy danych za pomocą
Następnie, aby zaktualizować hasło roota:
PS : Miałem problem z aktualizacją root roota, wygląda na problem z wtyczką „auth_socket”, więc musiałem utworzyć nowego użytkownika z pełnymi uprawnieniami
To tworzy użytkownika „super” bez hasła, a następnie można się połączyć
mysql -u super
źródło
use mysql;
<br> i możesz teraz używać <br>UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
Na serwerze Debian Jessie moim działającym rozwiązaniem było po prostu
jako użytkownik root
źródło