Frage Aktivieren Sie den passwortlosen Zugriff auf MySQL


Wie kann ich mein Passwort für MySQL löschen? Ich möchte kein Passwort für die Verbindung mit der Datenbank haben. Auf meinem Server läuft Ubuntu.


13
2018-05-19 22:27


Ursprung


Nur als eine Frage von Interesse, warum willst du kein Passwort? - John Gardeniers
Zum Beispiel liefere ich Fehler, wenn ich "dpkg-reconfigure phpmyadmin" starte. Es stoppt mit Fehler 1045 mit Zugriff verweigert root @ localhost "Passwort: Nein" endet. - Lacek


Antworten:


Persönlich denke ich, stattdessen ist es besser, ein Passwort zu setzen und es in /root/.my.cnf zu speichern:

Zuerst:

mysqladmin -u root password 'asdfghjkl'

Bearbeiten Sie dann die .my.cnf-Datei des Root:

[client]
password = asdfghjkl

Jetzt haben Sie ein Passwort, aber Sie werden nicht mehr dazu aufgefordert. Meine Standard-MySQL-Server-Installation ist ein völlig zufälliges eindeutiges Passwort für jeden MySQL-Server, der in der .my.cnf-Datei gespeichert wird.


27
2018-05-19 23:17



Ich stimme der Einstellung Ihrer Umgebung zur automatischen Authentifizierung gegen das Entfernen des Passworts zu. - Zoredache
Möglicherweise benötigen Sie ein Anführungszeichen für dieses Passwort in der .my.cnf-Datei. Es hat nicht ohne mich funktioniert. - user67641
@ user67641: Könnte von der Version abhängen und was ist in Ihrem Passwort ... Meine sind alle langen zufälligen Zeichenfolgen von alphanumerischen Zeichen (keine Sonderzeichen) und haben keine Anführungszeichen benötigt. - freiheit
Wenn Sie /root/.my.cnf erstellen müssen, sollten Sie explizit 0600-Berechtigungen festlegen, um sicherzustellen, dass kein anderer Benutzer Snooping ausführen kann. Meistens können normale Benutzer nicht in / root absteigen, aber die zusätzliche Paranoia ist fast immer gewährleistet. - Dale Anderson


Wenn Sie ein Passwort für MySQL festgelegt haben, folgen Sie den Anweisungen unter Recover MySQL root Passwortund setzen Sie dann Ihr Passwort auf null:

Für 5.7.6 und später

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'

Für 5.7.5 und früher

update user set password=PASSWORD("") where User='root';

* benötigt einen DB-Neustart (siehe Anweisungen auf der Verknüpfung), damit dies wirksam wird.

sudo service mysql restart

9
2018-05-19 22:41



vergessen Sie in diesem Fall nicht, "Berechtigungen zu löschen". - Marco Ramos
@meyosef - bitte markieren Sie eine Antwort als beantwortet, wenn sie Ihr Problem gelöst hat (klicken Sie auf das grüne Häkchen unter der Anzahl der Stimmen). - jneves
Ich dachte, ich könnte leere Passwort nur für Unix-Socket und nicht Loopback verwenden, aber es ist nicht möglich. Das unix_socket Plugin macht eine etwas andere Sache. - basin


Sie können auch Folgendes tun:

grant all privileges on *.* to 'root'@'localhost' identified by '';

5
2017-07-10 20:19





Ja, weniger Passwörter können eine gute Sache sein. Aber öffne nicht einfach die Datenbank für alle.

über unix_socket:

grant usage on *.* to 'root'@'localhost' identified via unix_socket;

Dies gibt Ihnen passwordless mysql Zugang für einen lokal eingeloggten Benutzer root. Übrigens. Dies ist der Standard in den letzten Ubuntu / Debian-Versionen.

some_user@box: mysql -u root  # denied
root@box: mysql               # good
some_user@box: sudo mysql     # good, if "some_user" has sudo rights.

Erläuterungsfolien: https://www.slideshare.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips.


5
2018-06-27 09:01



Willkommen bei SF! Schöne erste Antwort: klar, eine gute Zusammenfassung, ein Link für weitere Erkundung, und es fügt etwas zum bestehenden Korpus von Antworten hinzu. Ich freue mich, dein erster Kommentar zu sein, und ich hoffe, du bleibst hier und schreibst mehr Antworten wie diese. - MadHatter
oh wow danke :-) - Matthias Bloch
Die Folien sind in Ordnung, aber das ist die eigentliche Dokumentation: mariadb.com/kb/en/library/authentication-plugin-unix-socket - JonnyJD


Ich bin mir ziemlich sicher, dass standardmäßig kein Passwort vorhanden ist, wenn Sie der Admin-Benutzer sind und lokal darauf zugreifen. Finden Sie etwas anderes als das?

Funktioniert das?

#> mysqladmin -u root password ''

1
2018-05-19 22:31