Ist es möglich, Passwörter pro Datenbank oder pro Host in .my.cnf zu konfigurieren?


47

Ich habe folgendes in meinem ~/.my.cnf

[client]
password="somepass"

Dies ist jedoch nicht das Kennwort, das ich für jeden Benutzer @ Host / jede Datenbank verwende, zu der ich eine Verbindung herstelle. Gibt es eine Möglichkeit, in der Konfiguration verschiedene Passwörter für verschiedene Dinge anzugeben, damit ich sie nicht eingeben muss?


[User @DTest hat eine Frage wie diese im Mai dieses Jahres beantwortet] [1] [1]: dba.stackexchange.com/questions/2820/…
— RolandoMySQLDBA

Antworten:


64

Wie ich hier antwortete , können Sie für jeden Benutzer / Host / Datenbank, mit dem Sie eine Verbindung herstellen, einen Abschnitt hinzufügen. Verwenden Sie dazu die folgende Syntax ~/.my.cnf:

[clienthost1]   # Note: client + host1
user=myuser
password=mypass
database=dbname
host=server.location.com

Sobald dies in Ihrem Benutzer ist .my.cnf, können Sie es verwenden, indem Sie dies in einer Befehlszeile tun:

$ mysql --defaults-group-suffix=host1

Wie versprochen +1 !!!
— RolandoMySQLDBA

Können Sie das --defaults-group-suffix erklären?
— Otheus

Nett. Es hat eine Weile gedauert, bis ich den Rest von hier herausgefunden habe, aber für ein mysql Cron-Backup kann ich jetzt mysqldump --defaults-group-suffix = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr db_name verwenden > / home / myaccount / backups / db_name _ $ (echo $ (Datum '+ \% Y \% m \% d'). sql.gz), um ein gzipptes Backup zu erstellen. Danke!
— user1324409

Hinweis: Wenn Sie diesen in einem globalen my.cnf, wie /etc/mysql/my.cnf, aber haben eine benutzerdefinierte .my.cnfmit [client]darin definiert, wird diese Einstellungen in der globalen Datei überschreiben! Boo.
— Otheus

Beachten Sie, dass die Manpage von MariaDB fälschlicherweise angibt, dass ein Suffix von xden Abschnitt lesen wird, [client_x]aber in Wirklichkeit benötigen Sie das Suffix _xdafür
— Daniel Böhmer,

8

Das Einfügen eindeutiger Kennwörter in Textdateien wird nicht empfohlen, da mysql 5.6.6.

Sie können mysql_config_editorKennwörter auch verschlüsselt speichern, um unterschiedliche Kennwörter für unterschiedliche Verbindungen bereitzustellen. Https://dev.mysql.com/doc/refman/5.6/de/mysql-config-editor.html


3
Sicherheit durch Dunkelheit ...
— Federico Razzoli

+1 für die Erwähnung von mysql_config_editor
— RolandoMySQLDBA

1
Bis dieses Programm (1) auf frühere Versionen zurückportiert wurde, (2) die automatische Kennwortbereitstellung ermöglicht (dh das Lesen von Kennwörtern auf TTY nicht erzwingt), empfehle ich diese Methode nicht.
— Otheus

Verfügt MariaDB über eine vergleichbare Unterstützung oder Funktion für mysql_config_editor?
— Jeremy Hajek

@JeremyHajek Nein, das tut es nicht und wird es wahrscheinlich auch nie, da die MariaDB-Entwickler darauf hinweisen, dass nur ein falsches Gefühl für verbesserte Sicherheit besteht: MySQL 5.6: Sicherheit durch Selbstgefälligkeit?
— Bloodgain

8

Die andere Antwort ist richtig. mysqladminUnterstützt leider nicht --defaults-group-suffix(zumindest nicht die Version, die ich benutze).

Daher griff ich zu verwenden , --defaults-file=HOST.cnfanstatt, die funktionieren mysql, mysqladminund mysqldump.


2
Das Hinzufügen zu meinem .bash_profile machte es noch einfacher:alias my-host='mysql --defaults-file=HOST.cnf'
— spyle 20.10.15
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.