Alle nachfolgenden Beispiele beziehen sich auf Konsolenbefehle, da wir glauben, dass keine Programm so gut und reibungslos funktioniert wie die Arbeit auf der Bash.
1. mysqldump / Datenbank Export
# Normaler Dump
mysqldump -uusername -p -h127.0.0.1 database > dump.sql
# Resourcenschonender Dump (damit die Website nicht stehen bleibt beim Dumpen)
mysqldump -uusername -p -h127.0.0.1 --single-transaction --quick --lock-tables=false database > dump.sql
# Dump gleich komprimieren mit gzip
mysqldump -uusername -p -h127.0.0.1 --single-transaction --quick --lock-tables=false database | gzip > dump.sql.gz
# Unnötige Tabellen auslassen
mysqldump -uusername -p -h127.0.0.1 --single-transaction --quick --lock-tables=false --ignore-table=database.sys_log --ignore-table=database.sys_history database | gzip > dump.sql.gz
# Dump direkt mit Hilfe der TYPO3 Console (Nach Installation des Paketes helhum/typo3-console)
./vendor/bin/typo3cms database:export > dump.sql
# Dump direkt mit Hilfe der TYPO3 Console ohne unnötige Tabellen (Nach Installation des Paketes helhum/typo3-console)
./vendor/bin/typo3cms database:export -c Default -e 'cf_*' -e 'cache_*' -e '[bf]e_sessions' -e sys_log > dump.sql
Mehr Informationen über das Exportieren mit Hilfe der TYPO3 Console findet ihr auf https://docs.typo3.org/p/helhum/typo3-console/main/en-us/CommandReference/DatabaseExport.html
2. mysql / Datenbank Import
# Normaler Import eines Dumps
mysql -uusername -p -h127.0.0.1 database < dump.sql
# Import einer komprimierten Datei .sql.gz
zcat dump.sql.gz | mysql -uuser -p -h127.0.0.1 database
# Import über die TYPO3 Console (Nach Installation des Paketes helhum/typo3-console)
cat dump.sql | ./vendor/bin/typo3cms database:import
Mehr Informationen über das Importieren mit Hilfe der TYPO3 Console
https://docs.typo3.org/p/helhum/typo3-console/main/en-us/CommandReference/DatabaseImport.html
3. Tipps und Tricks
# Übertragen einer Datenbank in eine andere Datenbank durch Kombination von mysqldump und mysql
mysqldump -uusername -ppassword database1 | mysql -uusername -ppassword database2
# Ihr könnt auch eine oder beide Seiten durch einen SSH-Befehl ersetzen, um Dumps von einem anderen Server zu ziehen oder zu importieren
ssh user@server 'mysqldump -uuser -ppassword databaseforeign' | mysql -uuser -ppassword databaselocal
Tipp A: Wenn es zu Fehlern bzgl. "tablespaces" kommt, folgende Anweisung an den Dump hängen: --no-tablespaces
Tipp B: Ihr macht öfters Dumps auf dem Server, wollt aber nicht immer wieder den Befehl abtippen? Nutzt einfach STRG-R und sucht nach mysql oder mysqldump - der letzt genutzte Befehl wird sofort sichtbar und kann wieder verwendet werden.