Verwenden Sie den Befehl in der Datei, um eine mysql- oder andere shellähnliche Umgebung einzugeben

300
RuslanN

Nehmen wir an, wir haben ein Passwort gespeichert /root/mysql-password. Gibt es eine Möglichkeit, eine Verbindung zu MySQL herzustellen, ohne das Kennwort manuell aus dieser Datei zu kopieren und in das Feld einzugeben mysql -u root -p?

Zum Beispiel so etwas:

mysql -u root -p | /root/mysql-password 
1

2 Antworten auf die Frage

1
Bryan

Der einfachste Weg wäre das Erstellen einer /root/.my.cnfDatei (nicht vergessen chmod 0600) mit diesem Format:

[client] user=root password=rootpass 

Wenn Sie etwas tun und die Datei nicht haben können /root/.my.cnf, sollten Sie in der Lage sein, sie als zu erstellen filename.cnfund dann MySQL folgendermaßen aufzurufen --defaults-file:

mysql --defaults-file=/root/squirrellyfiles/filename.cnf 
Danke für die Antwort. Das ist also der einzige Weg? Und es gibt keinen gemeinsamen "Linux-Weg", um solche Dinge zu tun? RuslanN vor 8 Jahren 0
Sorry, ich bin mir nicht sicher, was ich genau verstehe. In Linux verfügen Sie im Allgemeinen entweder über Anmeldeinformationen in einer flachen Konfigurationsdatei (z. B. .my.cnf), eine gehashte oder verschlüsselte Datei, Umgebungsvariablen, über ssh-Schlüssel oder eine Kennwortabfrage. Die direkte Weitergabe des Passworts durch den Befehl ist sehr unsicher. Tun Sie etwas, bei dem die Defaults-Datei oder .my.cnf für Sie nicht funktioniert? Bryan vor 8 Jahren 0
Mein Passwort ist in einer Datei und immer wenn ich mich mit mysql verbinden wollte, musste ich "cat file / with / password" kopieren und "mysql -u user -ppassword" dachte ich, dass es möglich ist, den manuellen Kopierteil zu automatisieren RuslanN vor 8 Jahren 0
0
Andrew Palmer

Dies ist möglicherweise nicht der bevorzugte Weg, das jeweilige Problem zu lösen, aber der sogenannte "Linux-Weg" wäre die Verwendung von Backticks:

mysql -u root -p `cat /root/mysql-password`