Meine lokale Umgebung ist:
mit installiertem MySQL 5.7
Sudo apt-get install mysql-common mysql-server
Wenn ich versuchte, sich über CLI bei MySQL anzumelden:
mysql -u root -p
Ich bin auf ein zyklisches Problem mit 3 Schritten gestoßen.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Lösung: Neustart des PCs.
Was zu einem anderen Fehler geführt hat:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Mögliches Problem? Falsches Passwort für "root" Benutzer!
Lösung: Root-Passwort mit diesem Tutorial zurücksetzen .
Bei korrektem Passwort und funktionierender Buchse kommt der letzte Fehler.
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Hier habe ich aufgehört oder bin irgendwie wieder zu 1) gekommen.
Ich habe eine Lösung!
Ändern Sie beim Zurücksetzen des root-Passworts in Schritt 2) auch das Auth-Plugin in mysql_native_password
:.
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
Dies erlaubte mir, mich erfolgreich anzumelden!
Sudo /etc/init.d/mysql stop # stop mysql service
Sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
Sudo /etc/init.d/mysql stop
Sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password Prompt because your password is now blank
mysql -u root -p
Wenn Sie einen socket -Fehler sehen, kam eine Community mit zwei möglichen Lösungen:
Sudo mkdir -p /var/run/mysqld; Sudo chown mysql /var/run/mysqld
Sudo mysqld_safe --skip-grant-tables &
(Danke an @Cerin)
Oder
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(Danke an @Peter Dvukhrechensky)
mysql -uroot # "-hlocalhost" is default
Kann zu fehlender Datei oder zu einem slt-Fehler führen.
mysql -uroot -h127.0.0.1
Funktioniert besser.
Ich habe viele Möglichkeiten gefunden, mysqld.sock
-Dateien zu erstellen, Zugriffsrechte zu ändern oder sie zu verknüpfen. Es war doch nicht das Problem.
my.cnf
-DateiDas Thema war auch nicht da. Wenn Sie sich nicht sicher sind, das könnte Ihnen helfen .
Du kannst es wie folgt versuchen, es funktioniert für mich.
Server starten:
Sudo service mysql start
Gehen Sie jetzt zum Sockenordner:
cd /var/run
Sichern Sie die Socke:
Sudo cp -rp ./mysqld ./mysqld.bak
Server stoppen:
Sudo service mysql stop
Stellen Sie die Socke wieder her:
Sudo mv ./mysqld.bak ./mysqld
Starten Sie mysqld_safe:
Sudo mysqld_safe --skip-grant-tables --skip-networking &
Init mysql Shell:
mysql -u root
Ändere das Passwort:
Wählen Sie daher zuerst die Datenbank
mysql> use mysql;
Geben Sie nun zwei Abfragen ein:
mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root';
Nun wird alles in Ordnung sein.
mysql> flush privileges;
mysql> quit;
Zur Überprüfung:
mysql -u root -p
erledigt!
N.B, After login please change the password again from phpmyadmin
Jetzt hostname/phpmyadmin
prüfen
Username: root
Password: 123456
Weitere Informationen finden Sie unter So setzen Sie das vergessene Passwort phpmyadmin in Ubuntu zurück
Sie können diese 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 müsste mysql terminal mehr Befehle ausführen:
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('[email protected]*^G'), plugin='mysql_native_password' WHERE User='root';
flush privileges;
Sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown
Nach dem Neustart des MySQL-Servers Wenn Sie immer noch einen Fehler haben, müssen Sie folgende Schritte ausführen: Setzen Sie das Root-Passwort für MySQL 5.7 zurück. Ubuntu 16.04
Der Befehl mysql
verwendet standardmäßig UNIX-Sockets, um eine Verbindung zu MySQL herzustellen.
Wenn Sie MariaDB verwenden, müssen Sie das Unix Socket-Authentifizierungs-Plugin auf dem Server laden.
Sie können dies tun, indem Sie die [mysqld]
-Konfiguration folgendermaßen bearbeiten:
[mysqld]
plugin-load-add = auth_socket.so
Je nach Verteilung befindet sich die Konfigurationsdatei normalerweise unter /etc/mysql/
oder /usr/local/etc/mysql/
.
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 & quit (Quit verwenden, wenn sein stecken bleibt)
melden Sie sich ohne Kennwort 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 einloggen mit
Probieren Sie es aus: Sudo mysql_secure_installation
Arbeit in Ubuntu 18.04