Ich habe MariaDB installiert und kann als Linux-Root-Benutzer den MySQL-Befehl ausführen, um auf die Datenbank zuzugreifen. Aber wenn ich versuche, mich als normaler Linux-Benutzer anzumelden und auszuführen mysql -u root -p
, erhalte ich die folgende Fehlermeldung:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Ich habe verschiedene Methoden ausprobiert, beispielsweise das Zurücksetzen des Passworts für den MySQL-Root-Benutzer, aber nichts hat geholfen.
Jede Hilfe ist großartig.
Antwort1
Ich hatte das gleiche Problem, es wurde durch einen „Plugin“-Wert in der Tabelle „mysql.user“ verursacht.
Haben Sie es mit dieser Antwort versucht:https://askubuntu.com/a/636579/299538
Hier ist eine Erklärung dafür:https://superuser.com/a/1071043/592085
Antwort2
Bei MariaDB können Sie sich nicht als normaler Benutzer anmelden, Sie benötigen Root-Zugriff oder verwenden sudo
. Eine andere Lösung ist, einen weiteren Root-Benutzer mit vollen Berechtigungen hinzuzufügen.
Mit sudo mit der Datenbank verbinden:
sudo mysql -u root
Überprüfen Sie Ihr Konto in der aktuellen Datenbank:
mysql> SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
Benutzer neu erstellen root
(ggf. Passwort verwenden):
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '';
Erlaubnis erteilen:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Spülen:
mysql> FLUSH PRIVILEGES;
Datenbankverwendungen anzeigen:
SELECT User,Host FROM mysql.user;
+------+-----------+
| User | Host |
+------+-----------+
| root | % |
| root | localhost |
+------+-----------+
Beenden und als normaler Benutzer verbinden:
mysql -u root