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.