Es kann keine Verbindung zum Datenbankserver hergestellt werden (MySQL-Workbench)

86

Können Sie mir helfen, dieses Problem zu lösen?

Wenn ich versuche, im Datenbankmenü der MySQL-Workbench auf "Datenbank abfragen" zu klicken. es gibt mir einen Fehler:

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
quelle
3
Diese Antwort hat bei mir funktioniert. stackoverflow.com/questions/16129399/…
mcaleaa
In meinem Fall einfache Neustart-Hilfe - aber ich überprüfe zuerst @sergio Vorschlag - stackoverflow.com/a/7875732/6705161 .
Dannydedog

Antworten:

104

Das Problem ist wahrscheinlich darauf zurückzuführen, dass die Socket-Authentifizierung für den Root-Benutzer standardmäßig aktiviert ist, wenn während des Upgrades auf Ubuntu 16.04 kein Kennwort festgelegt wurde.

Die Lösung besteht darin, zur nativen Kennwortauthentifizierung zurückzukehren. Sie können dies tun, indem Sie sich mit der Socket-Authentifizierung bei MySQL anmelden, indem Sie Folgendes tun:

sudo mysql -u root

Einmal eingeloggt:

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

Dadurch wird die native (alte Standard-) Kennwortauthentifizierung wiederhergestellt.

Verwenden Sie jetzt das Passwort als Passwort, wann immer dies von MySQL verlangt wird.

Ayan
quelle
3
Es hat bei mir funktioniert, ich bin überrascht, dass ich das strenge Passwort bereits während der Installation von MySQL konfiguriert habe und dasselbe strenge Passwort, das bei der angegebenen Änderungsabfrage verwendet wurde. Ich bin neugierig zu wissen, warum es im ersten Versuch selbst nicht funktioniert hat
Vipul Patil
Danke vielmals! Wird dieses Verhalten nur zum Nutzen des Unix-Root-Benutzers erstellt, der sich bei MySQL anmeldet, ohne das Kennwort einzugeben?
Igor de Lorenzi
Tolle Lösung. Dank bro!
Valney Faria vor
56

Öffnen Sie services.mscdas Suchfeld im Startmenü und starten Sie den MySQL-Dienst manuell oder schreiben Sie direkt services.msc in das RunFeld

Colin
quelle
1
Hat bei mir nicht funktioniert. Wird direkt über die Befehlszeile "C: \ Programme \ MySQL \ MySQL Server 5.6 \ bin \ mysqld.exe --console" ausgeführt (beachten Sie, dass das "d" zwischen "mysql" und ".exe" funktioniert hat (beim Öffnen von) Befehlszeile "als Administrator"). Ich nehme an, eine Möglichkeit zu finden, den Dienst "als Administrator" zu starten, würde dies lösen.
Adrien Be
5
Wo ist das Startmenü-Suchfeld?
Everyone_Else
Meine Lösung war Mysql-Workbench mit sudo : sudo mysql-workbench . Ich wusste nicht, wo ich services.msc finden kann
Luigi Lopez
33

Es sieht so aus, als ob es viele Ursachen für diesen Fehler gibt.

Meine Ursache / Lösung

In meinem Fall war die Ursache, dass mein Server so konfiguriert war, dass nur Verbindungen von localhost akzeptiert wurden. Ich habe das Problem durch Befolgen dieses Artikels behoben: Wie aktiviere ich den Remotezugriff auf den MySQL-Datenbankserver? . Meine my.cnfDatei hatte keine skip-networkingZeile, also habe ich nur die Zeile geändert

bind-address = 127.0.0.1

zu

bind-address = 0.0.0.0

Dies ermöglicht Verbindungen von jeder IP-Adresse, nicht nur von 127.0.0.1.

Anschließend habe ich einen MySQL-Benutzer erstellt, der durch Ausführen der folgenden Terminalbefehle eine Verbindung von meinem Clientcomputer aus herstellen kann:

# 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

Wo 1.2.3.4ist die IP des Clients, von dem aus Sie eine Verbindung herstellen möchten? Wenn Sie wirklich Probleme haben, können Sie '%'stattdessen verwenden '1.2.3.4', um dem Benutzer die Verbindung von einer beliebigen IP-Adresse aus zu ermöglichen.

Andere Ursachen

Eine ziemlich umfangreiche Liste finden Sie unter Ursachen für Fehler , denen der Zugriff verweigert wurde .

AJ Richardson
quelle
AFAIK, die Erstellung des Benutzers ist notwendig, da der Benutzer root nur für die Administratorarbeit verwendet werden sollte und dies vernünftigerweise auf localhost beschränkt sein sollte. Welchen Benutzer Sie darüber hinaus erstellen, liegt bei Ihnen!
user3791372
Der Link zu den Ursachen für Fehler, denen der Zugriff verweigert wurde, ist jetzt unterbrochen.
Matt Coubrough
20

Haben Sie versucht festzustellen, ob dies ein Problem mit Workbench oder ein allgemeines Verbindungsproblem ist? Versuche dies:

  1. Öffnen Sie ein Terminal
  2. Art mysql -u root -p -h 127.0.0.1 -P 3306
  3. Wenn Sie eine erfolgreiche Verbindung herstellen können, wird nach quitEingabe Ihres Kennworts eine MySQL-Eingabeaufforderung angezeigt (geben Sie zum Beenden dort die Eingabetaste ein).

Berichten Sie zurück, wie das funktioniert hat.

Sergio
quelle
Hallo, es heißt "MySQL wird nicht als interner oder externer Befehl, bedienbares Programm oder Batch-Datei erkannt." Ich danke dir sehr.
user948950
1
Vielleicht möchten Sie hinzufügen die mysql bin - Verzeichnis (das binVerzeichnis innerhalb des Haupt-MySQL - Verzeichnis) auf dem Systempfad . Dann ist das MySQL-Client-Programm von überall verfügbar. Oder Sie können diesen Befehl einfach ausführen, nachdem Sie ihn in das MySQL-Bin-Verzeichnis verschoben haben. Beides sollte funktionieren.
Sergio
2
Wenn ich mit diesem Befehl eine Verbindung zu MySQL herstelle $> MySQL -u root -p -h 127.0.0.1 -P 3306 Passwort eingeben: FEHLER 1045 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: NO) [root @ localhost ~] # mysql -u root -p -h 127.0.0.1 -P 3306 Passwort eingeben: FEHLER 1045 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: YES) [root @ localhost ~] # mysql -u admin -p -h 127.0.0.1 -P 3306 Passwort eingeben: FEHLER 1045 (28000): Zugriff für Benutzer 'admin' @ 'localhost' verweigert (mit Passwort: YES) [root @ localhost ~] #
Sumit Munot
15

Ich hatte ein ähnliches Problem unter Mac OS und konnte es folgendermaßen beheben:

Führen Sie vom Terminal aus Folgendes aus:

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

Dann wurde ich gebeten, das Passwort einzugeben. Ich habe gerade die Eingabetaste gedrückt , da kein Passwort eingerichtet wurde.

Ich habe folgende Nachricht erhalten:

Willkommen beim MySQL-Monitor. Befehle enden mit; oder \ g. Ihre MySQL-Verbindungs-ID lautet 181. Serverversion: 8.0.11 Homebrew.

Wenn Sie sich erfolgreich bei mysql> anmelden konnten, führen Sie den folgenden Befehl aus:

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

Sie sollten eine Nachricht wie folgt erhalten:

Abfrage OK, 0 Zeilen betroffen (0,19 Sek.)

Jetzt ist Ihr Passwort " Passwort " und Ihr Benutzername ist " root ".

Viel Spaß beim Codieren :)

Almawhoob
quelle
Dies funktioniert wahrscheinlich nicht mehr mit neueren Installationen, da anonyme Anmeldungen deaktiviert sind.
en_lorithai
9

Führen Sie den Befehl ALTER USER aus. Stellen Sie sicher, dass Sie das Passwort in ein sicheres Passwort Ihrer Wahl ändern.

  1. sudo mysql # Anmelden bei mysql`

  2. Führen Sie den folgenden Befehl aus

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

Jetzt können Sie mit dem neuen Passwort darauf zugreifen.

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

Athira Ramachandran
quelle
7

Ich musste Workbench als Administrator starten. Anscheinend hatte es nicht die erforderlichen Berechtigungen, um eine Verbindung zu meinem localhost-Datenbankserverprozess herzustellen.

Klicken Sie mit der rechten Maustaste auf die Workbench-Verknüpfung und wählen Sie Run as Administrator. Im Eigenschaftenfenster der Verknüpfung können Sie auf "Erweitert" klicken und das Kontrollkästchen neben "Als Administrator ausführen" aktivieren, um die Workbench immer mit Administratorrechten auszuführen.

Steven Ryssaert
quelle
5

Der Fehler tritt auf, weil der MySQL-Server auf Ihrem Computer nicht gestartet wird. Sie sollten es manuell starten. Führen Sie die folgenden Schritte aus:

  1. Laden Sie den Wamp-Server entsprechend Ihrer Bit-Version (32 Bit oder 64 Bit) auf Ihrem Computer herunter und installieren Sie ihn auf Ihrem Computer ( http://wampserver-64bit.en.softonic.com/ ). Über diesen Link können Sie den Wamp-Server für 64 Bit herunterladen.

  2. Sobald Sie es installiert haben, können Sie darauf doppelklicken und es ausführen. (Sie können ein Symbol in der rechten Hand der Taskleiste sehen. Es ist möglicherweise ausgeblendet. Sie können also auf den Pfeil klicken, der Ihnen die ausgeführten ausgeblendeten Apps anzeigt.) Klicken Sie auf das Symbol und gehen Sie zu MySQL

  3. Gehen Sie dann zu Service und dort finden Sie Start / Resume Services. Klicken Sie darauf.

  4. Und jetzt ist es geschafft. Öffnen Sie die MySQL-Workbench und sehen Sie. Es wird funktionieren.

Sanjaya
quelle
4

Ich hatte eine Weile mit diesem Problem zu kämpfen und führte mehrere Neuinstallationen von MySQL durch, bevor ich dies entdeckte.

Ich weiß, dass der MySQL-Server in Ordnung war, da ich über die Befehlszeile auf alle meine DBs zugreifen konnte.

Hoffe das funktioniert bei dir.

In MySQL Workbench (5.2.47 CE)

Klicken Sie auf Serverinstanzen ändern (untere rechte Ecke).

Klicken Sie auf Verbindung

im Anschluss Feld auswählen:

Lokale Instanz ($ ServerName) - [email protected]: 3306 '<' Standard (TCP / IP)>

Klicken Sie auf Ausgewählte bearbeiten ...

Ändern Sie unter Parameter, Hostname localhost oder 127.0.0.1 in Ihren NetBIOS-Namen

Klicken Sie auf Verbindung testen

Wenn das für Sie funktioniert, großartig. Wenn nicht, ändern Sie den Hostnamen wieder in den ursprünglichen Namen.

KuBand12
quelle
1
Was ist ein NetBIOS-Name?
UserYmY
2
Das hat bei mir funktioniert. Der NetBIOS-Name ist der Name des Computers. Sie können ihn über die Systemeigenschaften, die Registerkarte "Computername" und den vollständigen Computernamen lesen.
NeonMan
3

Für diejenigen, die ignoriert haben, dass die erste angezeigte Fehlermeldung die folgende ist:

Der Name org.freedesktop.secrets wurde von keiner .service-Datei bereitgestellt

Stellen Sie sicher, dass Sie den Gnome-Schlüsselring wie folgt installieren

sudo apt install gnome-keyring
Bruno Kos
quelle
2

Aus diesem Grund habe ich versucht, mit der neuesten MySQL Workbench 8.x eine Verbindung zu MySQL Server 5.1 herzustellen (beide laufen unter Windows Server 2012).

Als ich MySQL Workbench 8.x deinstallierte und MySQL Workbench 6.3.10 installierte, wurde eine erfolgreiche Verbindung zur localhostDatenbank hergestellt

Alex
quelle
1

Um für obere Versionen und spätere Besucher auf dem neuesten Stand zu sein:

Derzeit arbeite ich an einer Win7 64-Bit-Version mit verschiedenen Tools, darunter Python 2.7.4 als Voraussetzung für Google Android ...

Als ich von WB 6.0.8-win32 auf höhere Versionen umgestiegen bin, um eine 64-Bit-Leistung zu erzielen, hatte ich einige Probleme, zum Beispiel bei 6.3.5-winx64. Ich hatte einen Fehler in der Detailansicht von Tabellen (ungeordnete Ansicht), der mich zu einem Downgrade auf 6.2 veranlasste. 5-winx64.

Als GUI-Benutzer funktionierten das einfache Vorwärts- / Rückwärts-Engineering und die relativen Elemente des DB-Servers gut, aber wenn wir es versuchen, Database>Connect to Databasewird Not connectedund wird ein Python-Fehler auftreten, wenn wir versuchen, eine Abfrage auszuführen. Der DB-Serverdienst wird jedoch absolut ausgeführt und funktioniert einwandfrei und dieses Problem ist nicht vom Server und von der Workbench. Um dies zu beheben, müssen wir Query>Reconnect to Serverdie DB-Verbindung explizit auswählen und dann sieht fast alles gut aus (dies kann an meinen mehreren Datenbankverbindungen liegen und ich konnte keine Lösung finden, um die Standard-Datenbankverbindung in der Workbench zu definieren).

Als Hinweis: Da ich die neueste Xampp-Version verwende (auch unter Linux süchtig :)), verwendet Xampp kürzlich Mariadb 10 anstelle von MySQL 5.x. Dies führt dazu, dass die MySQL-Dateiversion 10 einige Probleme verursacht, z. B. das Forward Engineering von Prozeduren Dies kann behoben werden, mysql_upgrade.exeaber wenn wir versuchen, eine Datenbankverbindung zu überprüfen, informiert wb über die falsche Version, ist jedoch nicht kritisch und funktioniert gut.

Schlussfolgerung: Daher können manchmal Probleme mit der Datenbankverbindung in der Workbench auf sich selbst und nicht auf den Server zurückzuführen sein (wenn Sie keine anderen relativen Probleme mit der Datenbankverbindung haben).

Alix
quelle
1

In meinem Fall habe ich gerade MySQL Workbench installiert, aber nach der Deinstallation von MySQL Workbench und der Installation des MySQL-Installationsprogramms ist es für 32- und 64-Bit gleich und funktioniert danach wie ein Zauber. Hoffe es könnte nützlich sein.

Shaik Elias
quelle
0

Ich hatte auch eine ganze Weile mit diesem Problem zu kämpfen.

Ich bin auf diesen interessanten Thread aus dem MySQL-Forum gestoßen : http://forums.mysql.com/read.php?11,11388,11388#msg-11388

Ich bin auch (offensichtlich) auf einige gute SO Q / A gestoßen.

Es scheint, dass die in der Frage von "user948950" erwähnte Nachricht aus einer Vielzahl von Gründen stammen kann: Protokolldatei zu groß, falsche Werte der mysql.ini-Datei, Leerzeichen im Dateipfad, Sicherheits- / ACL-Problem, alte Einträge im Registrierung und so weiter.

Nachdem ich 3 Stunden lang versucht hatte, dies zu beheben, gab ich auf und entschied mich für eine gute alte Neuinstallation.

Hier kam dieser Beitrag von (wieder) diesem MySQL-Thread nützlich , zitiere ich:

Gary Williams schrieb: Hallo Leute,

Ich hatte genau das gleiche Problem und so habe ich es für mich zum Laufen gebracht, angefangen mit einer nicht funktionierenden Installation.

  1. Beenden Sie den Windows-Dienst für eine vorhandene MySQL-Installation.

  2. Deinstallieren Sie MySQL.

Wie bei den meisten Deinstallationen bleiben alte Dateien zurück. Wenn Ihr Verzeichnis C: \ mysql \ etc ist, löschen Sie die Innob-Dateien usw., belassen Sie jedoch die Verzeichnisse selbst sowie alle vorhandenen Datenbanken in 'data'. Wenn Ihr Verzeichnis C: \ Programme \ etc ist, löschen Sie alle MySQL-Verzeichnisse.

  1. Es lohnt sich jetzt, regedit auszuführen, um sicherzustellen, dass die alten Registrierungseinträge auch bei der Deinstallation gelöscht werden. Wenn nicht, löschen Sie sie.

  2. Es ist jedoch in Ordnung, das neue MSI-Installationsprogramm zu verwenden (nur wichtige Dateien).

  3. Verwenden Sie nicht den Standardinstallationspfad! Ein Genie hat einen Weg mit Leerzeichen eingeschlagen! Wählen Sie die benutzerdefinierte Installation und einen sinnvollen Pfad, dh C: \ mysql (Anmerkung von Adrien: C: \ mysqldata für ... die Daten)

  4. Ändern Sie die Sicherheitseinstellungen nicht. Deaktivieren Sie das entsprechende Kontrollkästchen, und die Installation wird abgeschlossen, ohne dass Sie ein Root-Passwort festlegen müssen.

Ich glaube, ich habe mich an alles erinnert.

Viel Glück

Gary

Ich hatte Probleme beim einfachen Kopieren / Einfügen der Datenbanken, die ich in meinem vorherigen "Daten" -Verzeichnis hatte, in das neue. Die Arbeit, die ich fand, bestand darin, jede Datenbank zu exportieren (ich weiß ... viel Spaß) und sie dann nacheinander erneut zu importieren.

Zur Info: habe ich den folgenden Befehl zu importieren C:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql", die zum Beispiel istC:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"

Adrien Be
quelle
0

Ich war zuvor in ähnlichen Situationen und als ich das letzte Mal feststellte, dass es sich um ein Windows-Update-Problem handelte (nicht sicher). Dieses Mal habe ich die MySQL-Workbench geöffnet und keine Verbindung zu meiner lokalen Datenbank gefunden. Ich kann meine Tabellen nicht sehen, aber gestern konnte ich eine Verbindung zur Datenbank herstellen.

Ich habe festgestellt, dass meine Ursache darin besteht, dass der MySQL-Dienst nicht ausgeführt wird, nachdem ich meinen Computer einige Zeit in den Ruhezustand versetzt und wieder aufgeweckt habe. Meine Lösung: Starten Sie den Dienst "mysql" neu und führen Sie die Workbench erneut aus. Das Neustarten des Dienstes dauert eine Weile, funktioniert aber.

WesternGun
quelle
0

Mein Problem war, dass der MySQL-Server nicht installiert war. Ich hatte den MySQL-Installer ausgeführt, aber den MySQL-Server nicht installiert.

Ich habe das Installationsprogramm erneut durchgeführt, auf "Hinzufügen" geklickt und dann den MySQL-Server zur Liste hinzugefügt. Jetzt funktioniert es gut.

Pikamander2
quelle
0

Das Problem ist, dass der MYSQL-Server nicht installiert ist. Sie können das Installationsprogramm hier herunterladen

Dann schauen Sie sich dieses 6-minütige Installations- Tutorial an .

Wenn das Erstellen einer neuen Verbindung in MYSQL Workbench dann nicht funktioniert, stellen Sie sicher, dass Sie diese Verbindung als root ausführen, wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie Ihre INI-Datei nicht finden, überprüfen Sie diese Antwort.

Gerechtigkeit Bringer
quelle