Zugriff auf den lokalen MySQL-Server über Bash

Zugriff auf den lokalen MySQL-Server über Bash

Angenommen, ich möchte auf den MySQL-Server zugreifen und alle Tabellen und Datenbanken und ihre Daten mithilfe eines Bash-Skripts im lokalen Host ausdrucken.

Das Skript, das ich habe, sieht so aus:

mysql -u root -p Passwort

Nachdem das Skript ausgeführt wurde, öffnet sich die MySQL-Shell statt der Bash. Wie kann ich also einen Befehl mit MySQL ausführen?

Und welchen Befehl muss ich ausführen, um alle Datenbanken, Tabellen und ihre Daten auszudrucken?

Bearbeiten: Ich weiß jetzt, welchen Befehl ich verwenden soll, aber die Frage bleibt weiterhin:

Ich muss es in das Skript einfügen, aber beim Eingeben des Befehls mysqldump werde ich interaktiv nach dem Kennwort gefragt.

Wie kann ich also Passwörter in einem Bash-Skript handhaben?

Antwort1

Sehenmysqldumpdas tut, was Sie wollen.

Anwendungsbeispiel:

mysqldump -u root -p --all-databases

Weitere Schalter, die zu Ihrer speziellen Situation passen, finden Sie im Handbuch.

Antwort2

Versuche dies..

mysqldump -u root -p databasename > filename.sql

Alle Tabellen werden im Dateinamen .sql gespeichert. Es ist wie ein Backup.

und wenn Sie Tabellen wieder in der Datenbank speichern möchten, verwenden Sie diesen Befehl.

mysqldump -u root -p databasename < filename.sql

Antwort3

Wenn Sie ausführen man mysqldump, erhalten Sie die folgende Ausgabe:

--password[=Passwort], -p[Passwort]

Das für die Verbindung mit dem Server zu verwendende Passwort. Wenn Sie die Kurzoptionsform (-p) verwenden, darf zwischen der Option und dem Passwort kein Leerzeichen stehen. Wenn Sie den Passwortwert nach der Option --password oder -p in der Befehlszeile weglassen, fordert mysqldump Sie zur Eingabe eines Passworts auf.

Die Angabe eines Passworts in der Befehlszeile sollte als unsicher angesehen werden. Siehe Abschnitt 6.1.2.1, „Richtlinien für Endbenutzer zur Passwortsicherheit“. Sie können eine Optionsdatei verwenden, um die Eingabe des Passworts in der Befehlszeile zu vermeiden.

Angenommen, Ihr Root-Passwort lautet PASSWORD, versuchen Sie einfach den folgenden Befehl:

mysqldump -u root -pPASSWORD --all-databases > database.sql

verwandte Informationen