it-swarm.com.de

Enthält mysqldump -all-database alle Objekte?

Tut mysqldump -all-databases alle Objekte einschließen?

Ich muss alle Datenbanken auf einen neuen Server migrieren.

16
Manish Ishwar

Keine mysqldump -all-Datenbanken enthalten nicht alle Objekte

mysqldump --help

  -A, --all-databases Dump all the databases. This will be same as --databases
                      with all databases selected.

Mysqldump mit --all-database speichert also nur alle Datenbanken.

Um alle Datenbanken auf einen neuen Server zu migrieren, sollten Sie eine vollständige Sicherung erstellen:

mysqldump eine ganze mysql-Instanz

mysqldump -h... -u... -p... --events --routines --triggers --all-databases > MySQLData.sql

Der Nachteil ist, dass auf diese Weise erstellte Backups nur in dieselbe Hauptversion von mysql neu geladen werden können, mit der mysqldump generiert wurde. Mit anderen Worten, eine mysqldump --all-Datenbank aus einer MySQL 5.0-Datenbank kann nicht in 5.1 oder 5.5 geladen werden. Der Grund ? Das MySQL-Schema unterscheidet sich grundlegend zwischen Hauptversionen.

Hier ist die allgemeine Methode zum Speichern der SQL-Zuschüsse für Benutzer, die lesbar und portabler ist

mysql -h... -u... -p... --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',Host,''';') FROM mysql.user WHERE user<>''" | mysql -h... -u... -p... --skip-column-names -A | sed 's/$/;/g' > MySQLGrants.sql

Schauen Sie sich die Antwort von RolandoMySQLDBA an. Wie kann ich einen mysqldump einer großen Datenbank optimieren?

21
Abdul Manaf