Ich möchte eine Sicherungskopie aller meiner MySQL-Datenbanken erstellen. Ich habe mehr als 100 MySQL-Datenbanken. Ich möchte alle gleichzeitig exportieren und alle gleichzeitig auf einmal in meinen MySQL-Server importieren. Wie kann ich das machen?
mysql
database-backups
mysql-backup
Neuer Benutzer
quelle
quelle
Andere Lösung:
Es sichert jede Datenbank in einer anderen Datei
quelle
ExcludeDatabases="Database|information_schema|performance_schema|mysql"
[nächste Zeile]databases=`-u $USER -p$PASWORD -e "SHOW DATABASES;" | tr -d "| " | egrep -v $ExcludeDatabases`
und entfernen Sie die Zeilenif
undfi
vollständig. In der VariablenExcludeDatabases
speichern Sie die Namen von Datenbanken, die nicht gesichert werden sollen [normalerweise Systemdatenbanken].-Bse "show databases"
, um zusätzliche Formatierungsausgaben zu vermeiden und somit zu entfernen| tr -d "| " | grep -v Database
. In meinemdatabases=`mysql -u $USER -p$PASSWORD -Bse "SHOW DATABASES;"
U+200C U+200B
zwischen "c" und "h" des Wortes "Schema" . Dies unterbricht das Kopieren und Einfügen dieses Bits. Weitere Diskussion zu diesem Thema hier: meta.stackexchange.com/questions/170970/…Alle Antworten, die ich auf diese Frage sehe, können Probleme mit den Zeichensätzen in einigen Datenbanken haben, da das Beenden des Exits
mysqldump
in eine Datei innerhalb des Shell-Operators umgeleitet wird>
.Um dieses Problem zu lösen, sollten Sie die Sicherung mit einem Befehl wie diesem durchführen
Um eine gute BD- Wiederherstellung ohne Probleme mit Zeichensätzen durchzuführen. Natürlich können Sie den Standardzeichensatz nach Bedarf ändern.
quelle
Basierend auf diesen Antworten habe ich ein Skript erstellt, das alle Datenbanken in separaten Dateien sichert, sie dann aber in einem Archiv mit dem Datum als Namen komprimiert.
Dies fragt nicht nach Passwort, kann in cron verwendet werden. Um das Passwort zu speichern,
.my.cnf
überprüfen Sie diese Antwort unter https://serverfault.com/a/143587/62749Gemacht auch mit Kommentaren für diejenigen, die mit Bash-Skripten nicht sehr vertraut sind.
quelle
Warum sollten Sie formatierte Ausgaben analysieren, während der Befehl mysql direkt das tun kann, was Sie wollen?
Listet die Datenbanknamen und nur diese auf.
quelle
Seien Sie vorsichtig beim Exportieren und Importieren in verschiedene MySQL-Versionen, da die MySQL-Tabellen möglicherweise unterschiedliche Spalten haben. Wenn Sie kein Glück haben, funktionieren die Berechtigungen möglicherweise nicht. Ich habe dieses Skript (mysql_export_grants.sql) erstellt, um die Zuschüsse für den Import in die neue Datenbank zu sichern, nur für den Fall:
quelle
Wenn Sie die gesamte Datenbank sichern. Offensichtlich hat es große Datenmengen. So können Sie unten zum Besseren bevorzugen:
Backup erstellen:
Wenn Fehler
- Warnung: Überspringen der Daten der Tabelle mysql.event. Geben Sie die Option --events explizit an.
Verwenden:
Backup wiederherstellen:
Hoffe es wird helfen :)
quelle
Ich habe diesen Kommentar bereits vor mehr als 4 Jahren geschrieben und mich jetzt entschlossen, eine Antwort darauf zu geben.
Das Skript von jruzafa kann etwas vereinfacht werden:
Hinweis:
ExcludeDatabases
quelle
mysqldump -uroot -proot --all-database> allDB.sql
Hinweis: -u "Ihr Benutzername" -p "Ihr Passwort"
quelle
Exportieren Sie alle Datenbanken in Ubuntu
1 -
mysqldump -u root -p --databases database1 database2 > ~/Desktop/databases_1_2.sql
ODER
2 -
mysqldump -u root -p --all_databases > ~/Desktop/all_databases.sql
quelle