Meine lokale Umgebung ist:
- frisches Ubuntu 16.04
- mit PHP 7
mit installiertem MySQL 5.7
sudo apt-get install mysql-common mysql-server
Als ich versuchte, mich bei MySQL anzumelden (über CLI):
mysql -u root -p
Ich bin auf ein zyklisches Problem mit 3 Schritten gestoßen.
1) Zuerst gab es ein Socket-Problem
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Lösung: PC neu starten.
Was zu einem weiteren Fehler führte:
2) Mit Zugriff verweigert
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Mögliches Problem? Falsches Passwort für "root" Benutzer!
Lösung: Setzen Sie das Root-Passwort mit diesem Tutorial zurück .
Bei korrektem Passwort und funktionierendem Socket tritt der letzte Fehler auf.
3) Falsches Auth-Plugin
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Hier habe ich angehalten oder bin irgendwie wieder zu 1) gekommen.
mysql
linux
ubuntu
auth-socket
Tomáš Votruba
quelle
quelle
Antworten:
Ich habe eine Lösung!
Ändern Sie beim Zurücksetzen des Root-Passworts in Schritt 2) auch das Auth-Plugin in
mysql_native_password
:Dadurch konnte ich mich erfolgreich anmelden!
Vollständige Codelösung
1. Führen Sie Bash-Befehle aus
1. Führen Sie zuerst diese Bash-Befehle aus
2. Führen Sie dann die MySQL-Befehle aus => Kopieren und fügen Sie diese manuell in CLI ein
3. Führen Sie weitere Bash-Befehle aus
4. Socket-Problem (aus Ihren Kommentaren)
Wenn Sie einen Socket- Fehler sehen, hat eine Community zwei mögliche Lösungen gefunden:
(danke an @Cerin)
Oder
(danke an @Peter Dvukhrechensky)
Blinde Pfade und mögliche Kantenfehler
Verwenden Sie 127.0.0.1 anstelle von localhost
Kann zu "fehlender Datei" oder SLT-Fehler führen.
Funktioniert besser.
Überspringen Sie das Socket-Problem
Ich habe viele Möglichkeiten gefunden,
mysqld.sock
Dateien zu erstellen , Zugriffsrechte zu ändern oder sie zu verknüpfen. Es war schließlich nicht das Problem.Überspringen Sie die
my.cnf
DateiDas Problem war auch nicht da. Wenn Sie sich nicht sicher sind, kann dies hilfreich sein .
quelle
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld; sudo mysqld_safe --skip-grant-tables &
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
Es kann jemandem Zeit sparenSie können wie folgt versuchen, es funktioniert für mich.
Server starten:
Gehen Sie nun zum Sockenordner:
Sichern Sie die Socke:
Server stoppen:
Stellen Sie die Socke wieder her:
Starten Sie mysqld_safe:
Init MySQL-Shell:
Ändere das Passwort:
Wählen Sie daher zuerst die Datenbank aus
Geben Sie nun unten zwei Abfragen ein:
Jetzt wird alles in Ordnung sein.
Zur Überprüfung:
getan!
N.B, After login please change the password again from phpmyadmin
Jetzt prüfen
hostname/phpmyadmin
Username: root
Password: 123456
Weitere Informationen finden Sie unter Zurücksetzen des vergessenen Passworts phpmyadmin in Ubuntu
quelle
Der
mysql
Befehl verwendet standardmäßig UNIX-Sockets, um eine Verbindung zu MySQL herzustellen.Wenn Sie MariaDB verwenden, müssen Sie das Unix Socket Authentication Plugin auf der Serverseite laden .
Sie können dies tun, indem Sie die
[mysqld]
Konfiguration wie folgt bearbeiten :Je nach Verteilung befindet sich die Konfigurationsdatei normalerweise unter
/etc/mysql/
oder/usr/local/etc/mysql/
quelle
Sie können diese folgenden Schritte ausprobieren:
Beenden Sie den MySQL-Dienst 1 ..
sudo /etc/init.d/mysql stop
Melden Sie sich als root ohne Passwort an
sudo mysqld_safe --skip-grant-tables &
Nach dem Login-MySQL-Terminal sollten Sie weitere Ausführungsbefehle benötigen:
Nach dem Neustart Ihres MySQL- Servers Wenn immer noch ein Fehler auftritt, müssen Sie Folgendes besuchen: Zurücksetzen des MySQL 5.7-Root-Passworts Ubuntu 16.04
quelle
Für Ubuntu 18.04 und MySQL 5.7
Schritt 1:
sudo mkdir /var/run/mysqld;
Schritt 2:
sudo chown mysql /var/run/mysqld
Schritt 3:
sudo mysqld_safe --skip-grant-tables
& beenden (verwenden Sie beenden, wenn es stecken bleibt)Melden Sie sich ohne Passwort bei MySQL an
Schritt 4:
sudo mysql --user=root mysql
Schritt 5:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Schritt 6:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
Jetzt anmelden mit
mysql -u root -p <root>
quelle
$ mysql -u root -p
aber der Zugang noch verweigert.Access denied for user 'root'@'localhost' (using password: YES)
Ich habe versucht, 'JA' PasswortProbieren Sie es aus: sudo mysql_secure_installation
Arbeit ist in Ubuntu 18.04
quelle
Falls jemand hier landet, nachdem er denselben Fehler gemacht hat, den ich gemacht habe:
plugin="mysql_native_password"
vorübergehend umgestellt . Hat meine Aufgaben ausgeführt.plugin="auth_socket"
die in Folgemysql "ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded"
mysql_safe
Authentifizierung umgehen, um zum entsprechenden Plugin zu wechselnplugin="unix_socket"
Hoffentlich spart dies jemandem etwas Zeit, wenn er die Fehlermeldung des Originalplakats erhält, aber die wahre Ursache war das Flubben des Plugin-Namens, ohne dass das Plugin "auth_socket" selbst vorhanden war, was laut MariaDB-Dokumentation :
quelle
Sie können es mit den folgenden Befehlen versuchen:
quelle