Nie można połączyć się z serwerem bazy danych (Środowisko pracy mysql)

87

Czy możesz mi pomóc rozwiązać ten problem?

Kiedy próbuję kliknąć „zapytanie bazy danych” w menu bazy danych w środowisku roboczym MySQL. daje mi błąd:

Cannot Connect to Database Server

Your connection attempt failed for user 'root' from your host to server at 
127.0.0.1:3306:Can't connect to mysql server on '127.0.0.1'(10061)

Please:

 1. Check that mysql is running on server 127.0.0.1
 2. Check that mysql is running on port 3306 (note: 3306 is the default, but this can 
    be changed)
 3. Check the root has rights to connect to 127.0.0.1 from your address (mysql rights 
    define what clients can connect to the server and from which machines) 
 4. Make sure you are both providing a password if needed and using the correct 
    password for 127.0.0.1 connecting from the host address you're connecting from
user948950
źródło
3
Ta odpowiedź zadziałała dla mnie. stackoverflow.com/questions/16129399/…
mcaleaa
W moim przypadku prosta pomoc przy ponownym uruchomieniu - ale najpierw sprawdzam sugestię @sergio - stackoverflow.com/a/7875732/6705161 .
dannydedog

Odpowiedzi:

104

Problem prawdopodobnie wynika z tego, że uwierzytelnianie przez gniazdo jest domyślnie włączone dla użytkownika root, gdy nie jest ustawione żadne hasło, podczas aktualizacji do wersji Ubuntu 16.04.

Rozwiązaniem jest powrót do natywnego uwierzytelniania hasła. Możesz to zrobić, logując się do MySQL przy użyciu uwierzytelniania przez gniazdo, wykonując:

sudo mysql -u root

Po zalogowaniu:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

co spowoduje powrót do natywnego (starego domyślnego) uwierzytelniania hasła.

Teraz użyj hasła jako hasła zawsze, gdy jest to wymagane przez MySQL.

Ayan
źródło
3
U mnie zadziałało, jestem zaskoczony, już skonfigurowałem ścisłe hasło podczas instalacji mysql i to samo surowe hasło, które jest używane przy zadanym zapytaniu alter. Ciekaw jestem, dlaczego to nie zadziałało za pierwszym razem
Vipul Patil
Wielkie dzięki! Czy to zachowanie jest stworzone tylko na korzyść użytkownika root unix, który loguje się do mysql bez podawania hasła?
Igor de Lorenzi
1
Świetne rozwiązanie. Dzięki stary!
Valney Faria
56

Spróbuj otworzyć services.mscz pola wyszukiwania menu Start i spróbuj ręcznie uruchomić usługę MySQL lub bezpośrednio pisać services.msc w Runpolu

Colin
źródło
1
Nie działa dla mnie. uruchamiane bezpośrednio z wiersza poleceń „C: \ Program Files \ MySQL \ MySQL Server 5.6 \ bin \ mysqld.exe --console” (zauważ, że „d” między „mysql” i „.exe” zadziałało (podczas otwierania wiersz poleceń „jako administrator”). Przypuszczam więc, że znalezienie sposobu na uruchomienie usługi „jako administrator” rozwiązałoby ten problem.
Adrien Be
5
Gdzie jest pole wyszukiwania w menu Start?
Everyone_Else
Moje rozwiązanie było uruchomić MySQL Workbench z sudo: sudo mysql-workbench . Nie wiedziałem, gdzie znaleźć services.msc
Luigi Lopez
33

Wygląda na to, że istnieje wiele przyczyn tego błędu.

Moja przyczyna / rozwiązanie

W moim przypadku przyczyną było to, że mój serwer został skonfigurowany tak, aby akceptował tylko połączenia z localhost. Naprawiłem to, postępując zgodnie z tym artykułem: Jak włączyć zdalny dostęp do serwera bazy danych MySQL? . Mój my.cnfplik nie miał skip-networkinglinii, więc po prostu zmieniłem linię

bind-address = 127.0.0.1

do

bind-address = 0.0.0.0

Pozwala to na połączenia z dowolnego adresu IP, a nie tylko 127.0.0.1.

Następnie utworzyłem użytkownika MySql, który mógł łączyć się z mojego komputera klienckiego, uruchamiając następujące polecenia terminala:

# mysql -u root -p
mysql> CREATE USER 'username'@'1.2.3.4' IDENTIFIED BY 'password';
    -> GRANT ALL PRIVILEGES ON *.* TO 'username'@'1.2.3.4' WITH GRANT OPTION;
    -> \q

gdzie 1.2.3.4jest adres IP klienta, z którego próbujesz się połączyć. Jeśli naprawdę masz problemy, możesz użyć '%'zamiast, '1.2.3.4'aby zezwolić użytkownikowi na połączenie z dowolnego adresu IP.

Inne przyczyny

Aby uzyskać dość obszerną listę, zobacz Przyczyny błędów odmowy dostępu .

AJ Richardson
źródło
AFAIK, utworzenie użytkownika jest konieczne, ponieważ root użytkownika powinien być używany tylko do pracy administratora i rozsądnie powinien być ograniczony do localhost. to, jakiego użytkownika stworzysz poza tym, zależy od Ciebie!
user3791372
Łącze do przyczyn błędów odmowy dostępu jest teraz uszkodzone.
Matt Coubrough
20

Czy próbowałeś ustalić, czy jest to problem z Workbenchem, czy ogólny problem z połączeniem? Spróbuj tego:

  1. Otwórz terminal
  2. Rodzaj mysql -u root -p -h 127.0.0.1 -P 3306
  3. Jeśli uda Ci się połączyć pomyślnie, po wpisaniu hasła pojawi się zachęta mysql (wpisz quiti Enter, aby zakończyć).

Opowiedz, jak to działało.

Sergio
źródło
Cześć, jest napisane, że „mysql nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy”. Dziękuję bardzo.
user948950
1
Możesz chcieć dodać katalog bin mysql ( binkatalog w głównym katalogu MySQL) do ścieżki systemowej . Wtedy program klienta mysql będzie dostępny z dowolnego miejsca. Lub możesz po prostu uruchomić to polecenie po wejściu cd do katalogu bin MySQL. Obie powinny działać.
Sergio
2
Kiedy łączę się z mysql za pomocą tego polecenia $> mysql -u root -p -h 127.0.0.1 -P 3306 Wprowadź hasło: ERROR 1045 (28000): Odmowa dostępu dla użytkownika „root” @ „localhost” (używając hasła: NIE) [root @ localhost ~] # mysql -u root -p -h 127.0.0.1 -P 3306 Wprowadź hasło: ERROR 1045 (28000): Odmowa dostępu dla użytkownika „root” @ „localhost” (używając hasła: TAK) [root @ localhost ~] # mysql -u admin -p -h 127.0.0.1 -P 3306 Wprowadź hasło: BŁĄD 1045 (28000): Odmowa dostępu dla użytkownika „admin” @ „localhost” (używając hasła: TAK) [root @ localhost ~] #
Sumit Munot
15

Miałem podobny problem w systemie Mac OS i udało mi się to naprawić w ten sposób:

Z terminalu biegnij:

mysql -u root -p -h 127.0.0.1 -P 3306

Następnie zostałem poproszony o wprowadzenie hasła. Właśnie nacisnąłem enter, ponieważ nie ustawiono hasła.

Otrzymałem wiadomość następującą:

Witamy w monitorze MySQL. Polecenia kończą się na; lub \ g. Twój identyfikator połączenia MySQL to 181. Wersja serwera: 8.0.11 Homebrew.

Jeśli udało ci się zalogować do mysql>, uruchom następujące polecenie:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Powinieneś otrzymać taką wiadomość:

Zapytanie OK, dotyczy 0 wierszy (0,19 s)

Twoje hasło to „ hasło ”, a Twoja nazwa użytkownika to „ root ”.

Miłego kodowania :)

almawhoob
źródło
Prawdopodobnie nie będzie to już działać z nowszymi instalacjami, ponieważ anonimowe logowanie jest wyłączone.
en_lorithai
9

Uruchom polecenie ALTER USER. Pamiętaj, aby zmienić hasło na wybrane przez siebie silne hasło.

  1. sudo mysql # Zaloguj się do mysql`

  2. Uruchom poniższe polecenie

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    

Teraz możesz uzyskać do niego dostęp, używając nowego hasła.

Ref: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04

Athira Ramachandran
źródło
7

Musiałem uruchomić Workbench jako Administrator. Najwyraźniej nie miał wymaganych uprawnień, aby połączyć się z procesem mojego serwera bazy danych localhost.

Kliknij prawym przyciskiem myszy skrót Workbench i wybierz Run as Administrator. W oknie Właściwości skrótu możesz kliknąć „Zaawansowane” i zaznaczyć pole obok „Uruchom jako administrator”, aby zawsze uruchamiać Środowisko pracy z uprawnieniami administratora.

Steven Ryssaert
źródło
5

Błąd występuje, ponieważ serwer mysql nie uruchamia się na twoim komputerze. Powinieneś uruchomić go ręcznie. Wykonaj następujące kroki:

  1. Pobierz i zainstaluj serwer wamp zgodnie z posiadaną wersją bitową (32-bitową lub 64-bitową) na komputerze ( http://wampserver-64bit.en.softonic.com/ ) ten link umożliwia pobranie serwera wamp na 64-bitowy.

  2. Jak tylko ją zainstalujesz, możesz ją dwukrotnie kliknąć i uruchomić ... (możesz zobaczyć ikonę po prawej stronie paska zadań, może być ukryta, więc możesz kliknąć strzałkę, która pokazuje ukrywanie uruchomionych aplikacji). kliknij ikonę i przejdź do MySQL

  3. Następnie przejdź do Service i tam możesz znaleźć Start / Resume Services, kliknij na niego.

  4. A teraz gotowe. Otwórz Środowisko pracy mysql i zobacz. Będzie działać.

Sanjaya
źródło
4

Przez chwilę zmagałem się z tym problemem i zanim to odkryłem, wykonałem kilka ponownych instalacji MySQL.

Wiem, że serwer MySQL działał poprawnie, ponieważ mogłem uzyskać dostęp do wszystkich moich baz danych za pomocą wiersza poleceń.

Mam nadzieję, że to działa dla Ciebie.

W MySQL Workbench (5.2.47 CE)

kliknij Mange Server Instances (prawy dolny róg)

kliknij Połączenie

w polu Połączenie wybierz:

Wystąpienie lokalne ($ ServerName) - [email protected]: 3306 '<' Standard (TCP / IP)>

kliknij Edytuj wybrane ...

w obszarze Parametry zmień nazwę hosta localhost lub 127.0.0.1 na nazwę NetBIOS

kliknij Testuj połączenie

Jeśli to działa dla Ciebie, świetnie. Jeśli nie, zmień nazwę hosta z powrotem na taką, jaka była.

KuBand12
źródło
1
co to jest nazwa NetBIOS?
UserRRM
2
TO zadziałało dla mnie. Nazwa NetBIOS to nazwa komputera, którą można odczytać we właściwościach systemu, w zakładce „Nazwa komputera”, „pełna nazwa komputera”.
NeonMan
3

Dla tych, którzy zignorowali, że początkowy komunikat o błędzie jest następujący:

Nazwa org.freedesktop.secrets nie została dostarczona przez żadne pliki .service

Upewnij się, że zainstalowałeś gnome-keyring, korzystając z następującego

sudo apt install gnome-keyring
Bruno Kos
źródło
2

Z mojego powodu próbowałem użyć najnowszego MySQL Workbench 8.x do połączenia się z MySQL Server 5.1 (oba działające na Windows Server 2012).

Kiedy odinstalowałem MySQL Workbench 8.xi zainstalowałem MySQL Workbench 6.3.10, pomyślnie połączyłem się z localhostbazą danych

Alex
źródło
1

Aby być na bieżąco z wersjami wyższymi i późniejszymi odwiedzającymi:

Obecnie pracuję nad 64-bitową wersją win7, która ma różne narzędzia, w tym Python 2.7.4 jako warunek wstępny dla google android ...

Kiedy zaktualizowałem WB 6.0.8-win32 do wyższych wersji, aby mieć wydajność 64-bitową, miałem pewne problemy, na przykład na 6.3.5-winx64. Miałem błąd w widoku szczegółów tabel (nieuporządkowany widok), który spowodował, że spadłem do wersji 6.2. 5-winx64.

Jako użytkownik GUI, łatwa inżynieria do przodu / wstecz i elementy względne serwera db działały dobrze, ale kiedy spróbujemy Database>Connect to Database, będziemy mieli Not connectedi będziemy mieli błąd Pythona, jeśli spróbujemy wykonać zapytanie, jednak usługa serwera DB jest całkowicie uruchomiona i działa dobrze a ten problem nie pochodzi z serwera i pochodzi z Workbencha. Aby rozwiązać ten problem, musimy użyć Query>Reconnect to Serverdo jawnego wybrania połączenia DB, a wtedy prawie wszystko wygląda dobrze (może to wynikać z moich wielu połączeń z bazą danych i nie mogłem znaleźć rozwiązania do zdefiniowania domyślnego połączenia DB w środowisku roboczym).

Uwaga: ponieważ używam najnowszej wersji Xamppa (nawet w Linuksie uzależniająco :)), ostatnio Xampp używa mariadb 10 zamiast mysql 5.x powoduje, że wersja pliku mysql to 10 może powodować problemy, takie jak inżynieria procedur z wyprzedzeniem co można rozwiązać za pomocą, mysql_upgrade.exeale mimo to, gdy spróbujemy sprawdzić połączenie z bazą danych, wb poinformuje o złej wersji, jednak nie jest to krytyczne i działa dobrze.

Wniosek: Dlatego czasami problemy z połączeniem db w środowisku roboczym mogą być spowodowane przez niego samego, a nie serwer (jeśli nie masz innych problemów związanych z połączeniem db).

Alix
źródło
1

W moim przypadku właśnie zainstalowałem MySQL Workbench, ale po odinstalowaniu MySQL Workbench i zainstalowaniu instalatora MySQL i jest taki sam dla 32 i 64 bitów, a potem działa jak urok. Mam nadzieję, że może się przydać.

Shaik Elias
źródło
0

Od dłuższego czasu też zmagałem się z tym problemem.

Przeszedłem przez ten interesujący wątek z forum MySQL: http://forums.mysql.com/read.php?11,11388,11388#msg-11388

Spotkałem też (oczywiście) dobre pytania SO Q / A.

Wygląda na to, że wiadomość wspomniana w pytaniu "user948950" może pochodzić z wielu różnych przyczyn: zbyt duży plik dziennika, nieprawidłowe wartości pliku mysql.ini, spacje w ścieżce do pliku, problem z bezpieczeństwem / acl, stare wpisy w rejestr i tak dalej.

Tak więc, po 3h próbach naprawienia tego ... porzuciłem i zdecydowałem się na starą, dobrą ponowną instalację.

W tym miejscu przydał się ten post z (ponownie) tego wątku MySQL , cytuję:

Gary Williams napisał: Cześć chłopaki,

Miałem dokładnie ten sam problem i tak to działało, zaczynając od niedziałającej instalacji.

  1. Zatrzymaj usługę Windows dla każdej istniejącej instalacji mysql.

  2. Odinstaluj MySQL.

Podobnie jak w przypadku większości odinstalowań, stare pliki pozostają w tyle. Jeśli twój katalog to C: \ mysql \ etc, usuń pliki innob, etc, ale pozostaw same katalogi, a także wszelkie istniejące bazy danych w 'data'. Jeśli twój katalog to C: \ Program Files \ etc, usuń wszystkie katalogi mysql.

  1. Warto teraz uruchomić regedit, aby upewnić się, że stare wpisy rejestru zostaną również usunięte przez odinstalowanie. Jeśli nie, usuń je.

  2. Można jednak użyć nowego instalatora .msi (tylko niezbędne pliki), jednak ....

  3. Nie używaj ich domyślnej ścieżki instalacji! Jakiś geniusz wytyczył ścieżkę ze spacjami! Wybierz instalację niestandardową i wybierz rozsądną ścieżkę, np. C: \ mysql (uwaga od Adrien: C: \ mysqldata dla ... danych)

  4. Nie wybieraj zmiany ustawień zabezpieczeń. Odznacz odpowiednie pole, a instalacja zakończy się bez konieczności ustawiania hasła roota.

Chyba wszystko zapamiętałem.

Powodzenia

Gary

Miałem kłopoty, kiedy po prostu kopiowałem / wklejałem bazy danych, które miałem w moim poprzednim katalogu "data" do nowego. Tak więc praca, którą znalazłem, polegała na wyeksportowaniu każdej bazy danych (wiem ... to dużo zabawy), a następnie ponownym zaimportowaniu ich jeden po drugim.

FYI: użyłem następującego polecenia do importu C:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql", to znaczy na przykładC:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"

Adrien Be
źródło
0

Byłem w podobnych sytuacjach wcześniej i ostatnio zauważyłem, że był to problem z aktualizacją systemu Windows (nie jestem pewien). Tym razem otworzyłem środowisko MySQL i nie znalazłem połączenia z moją lokalną bazą danych. Nie widzę moich tabel, ale wczoraj mogłem połączyć się z bazą danych.

Odkryłem, że moją przyczyną jest to, że po pozostawieniu komputera w stanie uśpienia przez pewien czas i ponownym wybudzeniu go, usługa mysql nie działa. Moje rozwiązanie: uruchom ponownie usługę o nazwie „mysql” i ponownie uruchom środowisko robocze. Ponowne uruchomienie usługi zajmuje trochę czasu, ale działa.

WesternGun
źródło
0

Mój problem polegał na tym, że serwer MySQL nie był faktycznie zainstalowany. Uruchomiłem Instalatora MySQL, ale nie zainstalował on serwera MySQL.

Ponownie uruchomiłem instalator, kliknąłem „Dodaj”, a następnie dodałem serwer MySQL do listy. Teraz działa dobrze.

Pikamander2
źródło
0

Problem w tym, że serwer MYSQL nie jest zainstalowany. Możesz pobrać instalator stąd

Następnie obejrzyj ten 6-minutowy samouczek dotyczący instalacji .

Jeśli wtedy tworzenie nowego połączenia w MYSQL Workbench nie działa, upewnij się, że uruchamiasz to połączenie jako root, jak pokazano poniżej:

wprowadź opis obrazu tutaj

Jeśli nie możesz znaleźć swojego pliku .ini, sprawdź tę odpowiedź.

Justice Bringer
źródło