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;
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
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
2. Führen Sie dann die MySQL-Befehle aus => Kopieren und fügen Sie diese manuell in CLI ein
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;
3. Führen Sie weitere Bash-Befehle aus
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
4. Socket-Problem (aus Ihren Kommentaren)
Wenn Sie einen Socket- Fehler sehen, hat eine Community zwei mögliche Lösungen gefunden:
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)
Blinde Pfade und mögliche Kantenfehler
Verwenden Sie 127.0.0.1 anstelle von localhost
mysql -uroot # "-hlocalhost" is default
Kann zu "fehlender Datei" oder SLT-Fehler führen.
mysql -uroot -h127.0.0.1
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
Datei
Das Problem war auch nicht da. Wenn Sie sich nicht sicher sind, kann dies hilfreich sein .