Aktivieren Sie den kennwortlosen Zugriff auf MySQL
15
Wie kann ich mein Passwort für MySQL löschen? Ich möchte kein Passwort haben, um eine Verbindung zur Datenbank herzustellen. Auf meinem Server läuft Ubuntu.
Zum Beispiel stoße ich beim Ausführen von "dpkg-reconfigure phpmyadmin" auf Fehler. Es stoppt mit Fehler 1045, wobei der Zugriff verweigert wird. Root @ localhost "password: no" endet.
Lacek
Antworten:
29
Ich persönlich denke, stattdessen ist es besser, ein Passwort festzulegen und es in /root/.my.cnf zu speichern:
Zuerst:
mysqladmin -u root password 'asdfghjkl'
Bearbeiten Sie dann die .my.cnf-Datei von root:
[client]
password = asdfghjkl
Stellen Sie sicher, zu chmod 0600 .my.cnf.
Jetzt haben Sie ein Passwort, werden aber nicht mehr dazu aufgefordert. Meine Standardinstallation für MySQL-Server ist ein völlig zufälliges, eindeutiges Kennwort für jeden MySQL-Server, das in der Datei .my.cnf wie folgt gespeichert wird.
Ich stimme voll und ganz der Einstellung Ihrer Umgebung zu, dass Sie automatisch authentifiziert werden, anstatt das Kennwort zu entfernen.
Zoredache
2
Möglicherweise müssen Sie dieses Kennwort in der Datei .my.cnf in Anführungszeichen setzen. Ohne hat es bei mir nicht funktioniert.
user67641
1
@ user67641: Könnte von der Version und dem Inhalt Ihres Passworts abhängen ... Meine sind alle lange, zufällige alphanumerische Zeichenfolgen (keine Sonderzeichen) und benötigen keine Anführungszeichen.
freiheit
2
Wenn Sie /root/.my.cnf erstellen müssen, sollten Sie explizit 0600-Berechtigungen dafür festlegen, um sicherzustellen, dass kein anderer Benutzer Snooping durchführen kann. Normalerweise können normale Benutzer nicht in / root absteigen, aber die zusätzliche Paranoia ist fast immer gerechtfertigt.
Dale Anderson
Fehlende mv ./+%Y%m%d. $ Db.sql $ OUTPUT` zwischen mysqldump und gzip
Siddharth
9
Wenn Sie ein Kennwort für MySQL festgelegt haben, befolgen Sie die Anweisungen unter Wiederherstellen des MySQL-Stammkennworts und setzen Sie Ihr Kennwort auf null:
Für 5.7.6 und höher
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 am Link), damit dies wirksam wird.
Vergessen Sie in diesem Fall nicht, die 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 ein leeres Passwort nur für Unix-Sockets und nicht für Loopbacks verwenden, aber das ist nicht möglich. Das unix_socketPlugin macht etwas anderes.
Becken
9
Ja, weniger Passwörter können eine gute Sache sein. Öffnen Sie die Datenbank aber nicht nur für jedermann.
über unix_socket:
grant usage on *.* to 'root'@'localhost' identified via unix_socket;
Dadurch erhalten Sie kennwortlosen Mysql-Zugriff für einen lokal angemeldeten Root-Benutzer. Btw. Dies ist die Standardeinstellung 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.
Willkommen bei SF! Schöne erste Antwort: klar, eine gute Zusammenfassung, ein Link für die weitere Erforschung, und es fügt etwas zum vorhandenen Korpus von Antworten hinzu. Ich freue mich sehr, Ihre erste Wahl zu sein, und ich hoffe, Sie bleiben hier, um weitere Antworten wie diese zu schreiben.
Ich bin mir ziemlich sicher, dass es standardmäßig kein Passwort gibt, wenn Sie der Administrator sind und lokal darauf zugreifen. Finden Sie etwas anderes als das?
Antworten:
Ich persönlich denke, stattdessen ist es besser, ein Passwort festzulegen und es in /root/.my.cnf zu speichern:
Zuerst:
Bearbeiten Sie dann die .my.cnf-Datei von root:
Stellen Sie sicher, zu
chmod 0600 .my.cnf
.Jetzt haben Sie ein Passwort, werden aber nicht mehr dazu aufgefordert. Meine Standardinstallation für MySQL-Server ist ein völlig zufälliges, eindeutiges Kennwort für jeden MySQL-Server, das in der Datei .my.cnf wie folgt gespeichert wird.
quelle
mv ./+%Y%m%d
. $ Db.sql $ OUTPUT` zwischen mysqldump und gzipWenn Sie ein Kennwort für MySQL festgelegt haben, befolgen Sie die Anweisungen unter Wiederherstellen des MySQL-Stammkennworts und setzen Sie Ihr Kennwort auf null:
Für 5.7.6 und höher
Für 5.7.5 und früher
* benötigt einen DB-Neustart (siehe Anweisungen am Link), damit dies wirksam wird.
quelle
unix_socket
Plugin macht etwas anderes.Ja, weniger Passwörter können eine gute Sache sein. Öffnen Sie die Datenbank aber nicht nur für jedermann.
über unix_socket:
Dadurch erhalten Sie kennwortlosen Mysql-Zugriff für einen lokal angemeldeten Root-Benutzer. Btw. Dies ist die Standardeinstellung in den letzten Ubuntu / Debian-Versionen.
Erklärende Folien: https://www.slideshare.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips .
quelle
Sie können auch tun:
quelle
Ich bin mir ziemlich sicher, dass es standardmäßig kein Passwort gibt, wenn Sie der Administrator sind und lokal darauf zugreifen. Finden Sie etwas anderes als das?
Funktioniert das?
quelle