Heute habe ich mich als root in Ubuntu 14.04.1 LTS ll angemeldet
und dann apt-get install mariadb-server
(ohne sudo aber als root).
Mit habe mySQL -h localhost -u root --password=<PW>
ich
Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: YES)
Mit mySQL -u root -p
mir in die DB angemeldet und tat
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<PW>';
FLUSH ALL PRIVILEGES;
Das hat aber nicht geholfen. Hast du eine Idee? Ich habe keine Antwort auf die ähnlichen Fragen gefunden.
Antworten:
TL; DR: Um den Zugriff neuere Versionen von MySQL / MariaDB nach als Root - Benutzer, nachdem ein neuen installieren, müssen Sie in einem Root - Shell sein (dh
sudo mysql -u root
, odermysql -u root
in einer Shell gestartet durchsu -
odersudo -i
ersten)Nachdem ich gerade das gleiche Upgrade unter Ubuntu durchgeführt hatte, hatte ich das gleiche Problem.
Was seltsam war, war das
Ich würde mein Passwort akzeptieren und es mir erlauben, es festzulegen, aber ich konnte mich nicht
root
über denmysql
Client anmeldenIch musste mit Mariadb anfangen
Zugriff als root zu erhalten, während alle anderen Benutzer noch gut zugreifen konnten.
Beim Betrachten der
mysql.user
Tabelle habe ich festgestellt, dass für root dieplugin
Spalteunix_socket
auf "mysql_native_password" gesetzt ist, während für alle anderen Benutzer. Ein kurzer Blick auf diese Seite: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ erklärt, dass der Unix-Socket die Anmeldung ermöglicht, indemuid
der Prozess, auf dem der Client ausgeführt wird, mit dem des Benutzers im Internet abgeglichen wirdmysql.user
Tabelle. Mit anderen Worten, um auf Mariadb zuzugreifen, müssenroot
Sie als root angemeldet sein.Sicher genug, um meinen Mariadb-Daemon mit der erforderlichen Authentifizierung neu zu starten. Ich kann mich als Root anmelden
oder
Nachdem ich dies getan hatte, überlegte ich, wie ich darauf zugreifen sollte, ohne das Sudo ausführen zu müssen. Dies ist nur eine Frage der Ausführung dieser MySQL-Abfragen
(Ersetzen
<password>
durch Ihr gewünschtes MySQL-Root-Passwort). Dadurch wurden Kennwortanmeldungen für den Root-Benutzer aktiviert.Alternativ können Sie die MySQL-Abfrage ausführen:
Ändert das Root-Konto, um die Kennwortanmeldung zu verwenden, ohne das Kennwort zu ändern. Dies führt jedoch möglicherweise zu einer Installation von mysql / mariadb ohne Root-Kennwort.
Nach beiden müssen Sie mysql / mariadb neu starten:
Und voila hatte ich Zugriff von meinem persönlichen Account über
mysql -u root -p
BITTE BEACHTEN SIE, DASS DIESE SICHERHEIT REDUZIERT Vermutlich haben sich die MariaDB-Entwickler aus gutem Grund für einen solchen Root-Zugriff entschieden.
Wenn
sudo mysql -u root -p
ich darüber nachdenke, bin ich ziemlich froh, dass ich das tun muss, also wechsle ich zurück, aber ich dachte, ich würde meine Lösung veröffentlichen, da ich anderswo keine finden konnte.quelle
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
Befehl zweimal aus, bevor Sie Berechtigungen löschen?sudo service mysql restart
In sauberem Ubuntu 16.04 LTS wurde die MariaDB- Root- Anmeldung für localhost vom Kennwortstil zum Sudo-Anmeldestil geändert ...
Also mach es einfach
Da wir uns mit einem Passwort anmelden möchten, erstellen Sie einen anderen Benutzer 'Benutzer'.
in der MariaDB-Konsole ... (Sie erhalten in der MariaDB-Konsole mit 'sudo mysql -u root')
dann in der Bash-Shell-Eingabeaufforderung,
und Sie können sich mit 'user' mit 'yourpassword' auf localhost anmelden
quelle
Versuchen Sie den Befehl
Drücken Sie die Eingabetaste und weisen Sie ein neues Passwort für root in mysql / mariadb zu .
Wenn Sie einen Fehler wie erhalten
Aktivieren Sie den Dienst mit
jetzt, wenn Sie mit erneut eingeben
Wenn Sie dem Problem folgen, geben Sie mit ein
sudo su
undmysql -u root -p
wenden Sie jetzt Berechtigungen auf root anGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<password>';
Dies hat mein Problem in MariaDB behoben .
Viel Glück
quelle
vom Superuser akzeptierte Antwort :
quelle
Ich musste als root bei Ubuntu angemeldet sein, um auf Mariadb als root zugreifen zu können. Es kann etwas mit dem "Harden ..." zu tun haben, zu dem Sie bei der ersten Installation aufgefordert werden. So:
und du bist dabei.
quelle
Der neue Befehl zum Löschen der Berechtigungen lautet:
FLUSH PRIVILEGES
Der alte Befehl
FLUSH ALL PRIVILEGES
funktioniert nicht mehr.Sie erhalten eine Fehlermeldung, die so aussieht:
MariaDB [(none)]> FLUSH ALL PRIVILEGES; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ALL PRIVILEGES' at line 1
Hoffe das hilft :)
quelle
Führen Sie mysql_upgrade aus.
Prüfe das
sagt
Überprüfen Sie, ob die Tabelle _mysql.proxies_priv_ vorhanden ist.
Zugriff für Benutzer 'root' @ 'localhost' verweigert, während versucht wird, Berechtigungen zu erteilen. Wie erteile ich Privilegien?
quelle
Systeme wie Ubuntu bevorzugen das auth_socket- Plugin. Es wird versucht, sich zu authentifizieren, indem Sie Ihren Benutzernamen in der Datenbank und den Prozess vergleichen, der eine MySQL-Anfrage stellt. es wird hier beschrieben
Stattdessen möchten Sie möglicherweise mit dem mysql_native_password zurückkehren , für dessen Authentifizierung Benutzer / Kennwort erforderlich ist.
Über die Methode, um das zu erreichen, empfehle ich dies stattdessen.
quelle