Frage:
Erstinstallation von MySQL
Chad G
2018-02-03 04:26:05 UTC
view on stackexchange narkive permalink

Ich weiß, dass es viele, viele Threads gibt, aber höre mich an, bevor ich es als Duplikat markiere.

Auf einem Raspberry Pi, auf dem Stretch ausgeführt wird

installierte MySQL

  sudo apt-get install mysql-server  

Keine Fehler

  pi @ raspberrypi: ~ $ mysql -u rootERROR 1698 ( 28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert  

Dann habe ich versucht

  pi @ raspberrypi: ~ $ mysql_secure_installationHINWEIS: ALLE TEILE VON DIESES SCRIPT WIRD FÜR ALLE MariaDB-SERVER IM PRODUKTIONSGEBRAUCH EMPFOHLEN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG DURCH! Um sich bei MariaDB anzumelden, benötigen wir das aktuelle Passwort für den Root-Benutzer. Wenn Sie MariaDB gerade installiert haben und das Root-Passwort noch nicht festgelegt haben, ist das Passwort leer. Drücken Sie hier einfach die Eingabetaste. Geben Sie das aktuelle Passwort für root ein (für keine eingeben): ERROR 1698 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigertGeben Sie das aktuelle Passwort für root ein (geben Sie für keine ein):  

Jetzt hatte ich die Eingabetaste gedrückt, kein Passwort, was der Fall sein sollte, da es ein ist brandneue Installation.

Wenn ich jetzt dasselbe Installationsskript mit sudo

  pi @ raspberrypi ausführe: ~ $ sudo mysql_secure_installationHINWEIS: Es wird empfohlen, alle Teile dieses Skripts auszuführen ALLE MariaDB-SERVER IM PRODUKTIONSGEBRAUCH! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG DURCH! Um sich bei MariaDB anzumelden, benötigen wir das aktuelle Passwort für den Root-Benutzer. Wenn Sie MariaDB gerade installiert haben und das Root-Passwort noch nicht festgelegt haben, ist das Passwort leer. Drücken Sie hier einfach die Eingabetaste. Geben Sie das aktuelle Passwort für root ein (für keine eingeben): OK, erfolgreich verwendetes Passwort, Weiter ... Durch das Festlegen des Root-Passworts wird sichergestellt, dass sich niemand ohne die entsprechende Berechtigung beim MariaDB-Root-Benutzer anmelden kann. Root-Passwort festlegen? [J / N]  

Ich habe kein Passwort verwendet, sondern nur die Eingabetaste gedrückt.

Und ich kann nach unten fortfahren, indem ich ein neues Passwort einrichte, die Remote-Anmeldung deaktiviere usw.

Wenn jedoch alles erledigt ist und ich versuche mich anzumelden ....

  Berechtigungstabellen jetzt neu laden? [J / N] J ... Erfolg! Aufräumen ... Alles erledigt! Wenn Sie alle oben genannten Schritte ausgeführt haben, sollte Ihre MariaDB-Installation jetzt sicher sein. Vielen Dank für die Verwendung von MariaDB! pi @ raspberrypi: ~ $ mysql -u root -p Passwort eingeben: FEHLER 1698 (28000): Zugriff für Benutzer 'root' @ 'localhost'pi @ raspberrypi verweigert: ~ $  

I. Ich bin mir sicher, dass ich das richtige Passwort verwendet habe (und diesen Vorgang tatsächlich ein paar Mal durchlaufen habe).

Ich kann mich mit nur sudo ohne Passwort bei mysql anmelden, aber dies löst nicht das Problem, kein sudo zu benötigen Zugriff.

  pi @ raspberrypi: ~ $ sudo mysql Willkommen auf dem MariaDB-Monitor. Befehle enden mit; oder \ g. Ihre MariaDB-Verbindungs-ID lautet 26 Serverversion: 10.1.23-MariaDB-9 + deb9u1 Raspbian 9.0Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab und andere. Geben Sie 'help;' oder '\ h' um Hilfe. Geben Sie '\ c' ein, um die aktuelle Eingabeanweisung zu löschen. MariaDB [(keine)] >  

Ich habe andere Beispiele zum Zurücksetzen des Kennworts durchgesehen (--skip-grant-tables und so) ohne Glück. Aber auch wenn ich keine Passwörter zurücksetzen möchte, beginne ich mit einer Neuinstallation.

Ich hatte irgendwo gesehen, dass die Standardanmeldung für root kein Passwort war, sondern über ein authentifiziert wurde Socket-Verbindung, aber ich konnte nicht mehr darüber herausfinden.

Sie sollten nicht root verwenden, um auf Ihre Datenbank zuzugreifen. Sie sollten einen neuen Benutzer mit nur den erforderlichen Berechtigungen erstellen.
Vielleicht musst du in einer bestimmten Gruppe sein?
@SteveRobillard Das ist keine Antwort auf meine Frage, ich habe nicht gefragt, ob ich mich als root anmelden soll (was ich tun möchte).
Einer antworten:
hcheung
2018-02-04 19:04:36 UTC
view on stackexchange narkive permalink

mariadb verwendet standardmäßig das UNIX_SOCKET-Plugin, um den Benutzer root zu authentifizieren. https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/. Es funktioniert, indem die UID des Prozesses abgerufen wird, der eine Verbindung zum Socket hergestellt hat, und eine Verbindung zum MariaDB-Konto mit dem entsprechenden Benutzernamen hergestellt wird. Mit anderen Worten, wenn Sie Ihr RPi als pi Benutzer ausführen, wenn Sie

  mysql -u root  

the ausführen uid ist nicht root . Sie müssen also root sein, um den Befehl auszuführen:

  sudo mysql -u root  

Das Standardkennwort für root ist leer.

Übrigens können Sie nach dem Anmelden überprüfen, ob root tatsächlich unix_socket verwendet, indem Sie diesen mysql-Befehl ausführen:

  MariaDB [(keine)] > SELECT user, Host, Plugin FROM mysql.user; + --------- + ----------- + ------------- + | Benutzer | Host | Plugin | + --------- + ----------- + ------------- + | root | localhost | unix_socket | + --------- + ----------- + ------------- + 2 Zeilen im Satz (0,00 Sek.)  

Sie sollten einen Benutzer für Ihren aktuellen Benutzer erstellen und dem Benutzer alle Berechtigungen gewähren. Auf diese Weise können Sie ohne sudo auf den Datenbankserver zugreifen.

Denken Sie daran, den Dienst in der Shell neu zu starten:

  sudo service mysql restart  

Und schließlich sollten Sie mysql_secure_installation ausführen , um den Root-Zugriff zu deaktivieren.

Vielen Dank, ich hatte mich endlich an das Plugin-Problem erinnert und es in native_password geändert, da dies mit dem gesamten Code funktioniert, den ich bereits geschrieben habe (und es gibt keine Sicherheitsprobleme, über die ich mir Sorgen machen muss).


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...