it-swarm.com.de

Es konnte keine Verbindung zu mysql unter 127.0.0.1:3306 hergestellt werden, wobei der Benutzer root-Zugriff für den Benutzer 'root' @ 'localhost' (mit Kennwort: YES) verweigert wurde

Ich habe versucht, eine neue Datenbankverbindung in der Workbench zu erstellen. Bei jedem Test einer Verbindung wird jedoch eine Fehlermeldung angezeigt

Es konnte keine Verbindung zu mysql unter 127.0.0.1:3306 hergestellt werden, wobei der Benutzer root-Zugriff für den Benutzer 'root' @ 'localhost' (mit Kennwort: YES) verweigert wurde 

Ich weiß nicht, was die Ursache dieses Fehlers ist. Ich habe versucht, Workbench 6.1 und MySQL-Server 5.6 zu deinstallieren und erneut zu installieren. Der Fehler ist jedoch immer noch ungelöst.

32
cpl

Prüfen Sie zunächst, ob es sich um ein Workbench- oder Verbindungsproblem handelt.

1) Führen Sie in Ihren Fenstern 'cmd' aus, um ein Terminal zu öffnen

Probiere beides

2a) mysql -u root -p -h 127.0.0.1 -P 3306

2b) mysql -u root -p -h > localhost -P 3306

3) Wenn die Verbindung gut ist, erhalten Sie eine Kennwortabfrage, ob Sie die Verbindung mit dem richtigen Kennwort herstellen können.

Wenn Ihre Verbindung abgelehnt wird, erteilen Sie einfach die Erlaubnis

mysql >GRANT ALL ON [DatabaseName].* TO 'root'@'127.0.0.1' IDENTIFIED BY '[PASSWORD]';

Wenn Ihre Verbindung hier akzeptiert wird, ist dies ein Problem der Konfiguration der Workbench.

29
ydoow

Ich hatte das gleiche Problem. 
Ich habe bei Ubuntu frische mysql installiert, aber das mysql-Kennwort wurde leer gelassen. Daher konnte ich keine Verbindung zu mysql herstellen.
Kürzlich habe ich herausgefunden, dass es eine Tabelle mit Benutzern gibt, die Namen, Hosts, Passwörter und einige Plugins enthalten. Für meinen Benutzer root @ localhost hat mysql während der Installation ein Plugin namens auth_socket zugewiesen, mit dem sich Unix-Benutzer "root" als mysql-Benutzer "root" ohne Kennwort anmelden können, jedoch kein Anmelden als anderer Unix-Benutzer. Um dies zu beheben, sollten Sie dieses Plugin deaktivieren und die übliche Authentifizierung einstellen:

  1. linux-Terminal öffnen
  2. geben Sie " Sudo mysql " ein.
    Sie sehen "mysql>", was bedeutet, dass Sie als 'root' Unix-Benutzer mit mysql verbunden sind und SQL-Abfragen eingeben können.
  3. geben Sie eine SQL-Abfrage ein, um die Art und Weise der Anmeldung zu ändern:
    ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
    Dabei bedeutet 'mysql_native_password' - das auth_socket-Plugin zu deaktivieren.
7
Vladimir Voznyi

In Ubuntu-Systemen, auf denen MySQL 5.7 (und neuere Versionen) ausgeführt wird, ist der Root-MySQL-Benutzer so eingestellt, dass er sich standardmäßig mit dem auth_socket-Plugin statt mit einem Kennwort authentifiziert. Dies bietet in vielen Fällen eine größere Sicherheit und Benutzerfreundlichkeit , kann jedoch auch kompliziert sein, wenn Sie einem externen Programm (z. B. phpMyAdmin) den Zugriff auf den Benutzer ermöglichen müssen.

Wenn Sie bei der Verbindung mit MySQL lieber ein Kennwort als root verwenden möchten, müssen Sie die Authentifizierungsmethode von auf auth_socket bis mysql_native_password . Quelle

Öffnen Sie die MySQL-Eingabeaufforderung von Ihrem Terminal aus:

$ Sudo mysql

Überprüfen Sie als Nächstes mit dem folgenden Befehl, welche Authentifizierungsmethode jedes Ihrer MySQL-Benutzerkonten verwendet:

mysql > SELECT user,authentication_string,plugin,Host FROM mysql.user;

Sie werden sehen, dass sich der Root-Benutzer tatsächlich mit dem Plugin auth_socket authentifiziert. Führen Sie den folgenden Befehl aus, um das Root-Konto für die Authentifizierung mit einem Kennwort zu konfigurieren: ALTER USER Befehl. Stellen Sie sicher, dass Sie das Passwort in ein sicheres Passwort Ihrer Wahl ändern:

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

Dann renne FLUSH PRIVILEGES, der den Server anweist, die Grant-Tabellen neu zu laden und die neuen Änderungen zu übernehmen:

mysql > FLUSH PRIVILEGES;

Überprüfen Sie die Authentifizierungsmethoden, die von jedem Ihrer Benutzer verwendet werden, erneut, um sicherzustellen, dass sich Root nicht mehr authentifiziert. Verwenden Sie dazu das auth_socket-Plugin :

mysql > SELECT user,authentication_string,plugin,Host FROM mysql.user;

Sie werden in der Ausgabe sehen, dass der Root-MySQL-Benutzer sich jetzt mit einem Passwort authentifiziert.

4
Eric Korolev

Probieren Sie es aus, es hat bei mir funktioniert!

Sudo mysql -u root -p

Geben Sie im Terminal Folgendes ein:

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

Bearbeiten Sie dann in der MySQL Workbench die Verbindung und ändern Sie den Stammnamen in admin.

3
Diogo Quaresma

keine Ahnung, wie das passiert ist, aber ich hatte das gleiche Problem. Ich musste mein Root-Passwort zurücksetzen: http://www.jovicailic.org/2012/04/reset-forgotten-mysql-root-password-under-windows/

Aber nach meinen Datenbanken, die ich zuvor hatte, wurden sie entweder verworfen oder die neue Verbindung stellte keine Verbindung zu ihnen her. In beiden Fällen konnte ich nicht über die Workbench darauf zugreifen. Aber ich konnte MySQL wieder verwenden, was für mich ein Gewinn war

3
J Seaton

ich bin gerade auf dieses Problem gestoßen und mit ein paar Versuchen habe ich herausgefunden, dass Besuchsdienste >> den MySQLxx-Dienst auswählen, mit der rechten Maustaste klicken und auf Start klicken , das mein Problem gelöst hat und alles funktioniert, ohne dass Daten verloren gehen müssen. Nur für diejenigen, die zu diesem Fragenthema kommen werden.

3
CriminalDuck

Sie sollten den MySQL-Server installieren, der in Ihrem localhost hostet. Installieren Sie dann die Workbench. Immer noch, wenn Sie den Fehler GOTO erhalten:

(In MAC :)

Systemeinstellungen> Mysql (Wird unten aufgeführt, sonst ist kein Server auf Ihrem Computer installiert).

Überprüfen Sie den Serverstatus und starten Sie den Mysql-Server.

Versuchen Sie, eine Verbindung zu localhost mit der Standardportnummer herzustellen.

Versuche dies,

Ich hoffe, dies wird dir helfen

  1. Deinstalliert alles einschließlich des Installationsprogramms von seiner eigenen Deinstallationsoption.
  2. Deinstallierte alle Programme, die in irgendeiner Weise mit mysql verwandt waren
  3. Der Mysql-Ordner wurde aus C:\Program Files gelöscht
  4. Der Mysql-Ordner wurde aus C:\ProgramData gelöscht 
  5. Ich habe meine Registry gelöscht und dann das Programm neu installiert, aber alles umsonst.

Wiederholen: Folgendes habe ich getan:

  1. Installierte es mit mysql-installer-web-community-5.6.23.0.msi
  2. Für meine Zwecke habe ich "Benutzerdefiniert" mit MySQL-Servern 5.6.22 - X64- und MySQL-Connectors -> Connector ODBC/5.3.4 - 64 ausgewählt
  3. Weiter -> Ausführen - (bereit zum Konfigurieren) -> Weiter
  4. Konfigurationstyp: Entwicklungsmaschine, alle Standardeinstellungen (TCP/IP, Port: 3306, Open Firewall)
  5. In MySQL-Root-Passwort eingegeben
  6. MySQL-Benutzer Konten -> Benutzer hinzufügen (Benutzername, Kennwort, OK) -> Weiter
  7. MySQL Server als Windows-Dienst konfigurieren (CHECKED)
  8. Windows-Dienstname: MySQL56 (Standard)
  9. Starten Sie den MySQL-Server beim Systemstart
  10. THIS IS CRUCIAL (BUG IS HERE): Dienst als ... Standardsystemkonto ausführen (CHECKED - aber es wird ignoriert und das ist BUG)
  11. Weiter -> Ausführen, Installation bleibt beim Starten des Servers hängen, warten Sie also eine Weile, bis die Zeitüberschreitung eintritt (oder entscheiden Sie sich nicht). Wenn der Dialog (möglicherweise mit anderen Fenstern abgedeckt wird) erscheint ein Popup-Fenster mit der Meldung "Die Konfiguration von MySQL Server dauert länger als erwartet ... Klicken Sie hier auf OK (um länger zu warten)

Empfohlener Fix: 12. Gehen Sie in der Zwischenzeit zu Start -> Systemsteuerung -> Verwaltung -> Dienste -> Suchen Sie nach MySQL56, klicken Sie mit der rechten Maustaste darauf -> Eigenschaften -> wählen Sie die Registerkarte Anmelden und hierher IS BUG -> Obwohl das lokale Systemkonto vorhanden war ausgewählt, irgendwie "Dieses Konto: Netzwerkdienst (mit einem Kennwort) wurde ausgewählt -> Wählen Sie Anmelden als: Lokales Systemkonto, Erlauben, dass der Dienst mit dem Desktop interagieren kann -> Anwenden -> Wechseln Sie zur Registerkarte Allgemein

  1. Klicken Sie auf der Registerkarte "Allgemein" auf "Start", um den Dienst zu starten. Hier ist es! Service ist gestartet! Klicken Sie auf OK, um das Dialogfeld "MySQL56-Eigenschaften" zu schließen. Schließen Sie das Dialogfeld "Dienste". Schließen Sie die Verwaltungswerkzeuge. Schließen Sie die Systemsteuerung.

  2. Bis zu diesem Zeitpunkt (beim Schließen dieser Dialoge) sind beim Überprüfen des MySQl-Installationsdialogfelds alle Schritte abgeschlossen und geprüft: Server starten, Sicherheit anwenden ... Benutzerkonten erstellen. Link zum Startmenü

  3. Bestätigen Sie mit Finish -> Next -> Finish Das wars, MySQL-ing :)

Quelle: https://bugs.mysql.com/bug.php?id=76476

1
Venkat Kallem

Ich weiß, das ist alt, aber ich bin auch auf dieses Problem gestoßen, habe aber eine Lösung gefunden, die für mich funktioniert hat:

  1. gehe zu "Dienstleistungen"
  2. unter "Name" finden Sie Ihren Benutzernamen
  3. klicken Sie mit der rechten Maustaste und wählen Sie "Start".

Gehen Sie zu Ihrer MySQL-Workbench und wählen Sie unter "INSTANCE" die Option "Start/Herunterfahren" aus. Ich hoffe, das hilft allen, die auf dieses Problem stoßen.

0
Adan De Leon

Gehen Sie zur Suchleiste unter Windows und suchen Sie nach Services . Starten Sie Services und suchen Sie nach MySQLxx(xx hängt von Ihrer MySQL-Version ab) in der langen Liste der Dienste. Klicken Sie mit der rechten Maustaste auf unter MySQLxx und drücken Sie Start . MySQL sollte jetzt einwandfrei funktionieren.

0
jseahhh