Versuchen Sie, --quick
hinzuzufügen Option zu Ihrem mysqldump
hinzufügen Befehl; es funktioniert besser mit großen Tabellen. Es streamt die Zeilen aus der Ergebnismenge zur Ausgabe, anstatt die gesamte Tabelle zu schlürfen und sie dann auszugeben.
mysqldump -uroot -h my.host -p'mypassword' --quick --max_allowed_packet=512M db_name table_name | \
gzip > dump_test.sql.gz
Sie können auch versuchen, --compress
hinzuzufügen Option zu Ihrem mysqldump-Befehl. Dadurch wird das netzwerkfreundlichere komprimierte Verbindungsprotokoll zu Ihrem MySQL-Server verwendet. Beachten Sie, dass Sie immer noch das gzip
benötigen Rohr; Das komprimierte Protokoll von MySQL bewirkt nicht, dass der Dump aus mysqldump
kommt komprimiert.
Es ist auch möglich, dass der Server seine Verbindung zu mysqldump
zeitlich begrenzt Klient. Sie können versuchen, die Timeout-Dauern zurückzusetzen. Stellen Sie auf andere Weise eine Verbindung zu Ihrem Server her und führen Sie diese Abfragen aus. Führen Sie dann Ihren mysqldump
aus Arbeit.
Diese setzen die Timeouts auf einen Kalendertag.
SET GLOBAL wait_timeout=86400;
SET GLOBAL interactive_timeout=86400;
Schließlich, wenn Ihr Server weit entfernt von Ihrem Rechner ist (durch Router und Firewalls), kann etwas mysqldump
stören s Verbindung. Einige minderwertige Router und Firewalls haben Zeitbegrenzungen für NAT-Sitzungen (Network Address Translation). Sie sollen diese Sitzungen am Leben erhalten, während sie verwendet werden, aber einige tun dies nicht. Oder vielleicht stoßen Sie an eine Zeit- oder Größenbeschränkung, die von Ihrem Unternehmen für externe Verbindungen konfiguriert wurde.
Versuchen Sie, sich bei einem Rechner anzumelden, der näher am Server liegt, und führen Sie mysqldump
aus Verwenden Sie dann andere Mittel (sftp?), um Ihre gz-Datei auf Ihren eigenen Computer zu kopieren.
Oder Sie müssen den Dump dieser Datei möglicherweise segmentieren. Sie können so etwas tun (nicht debuggt).
mysqldump -uroot -h my.host -p'mypassword' \
db_name table_name --skip-create-options --skip-add-drop-table \
--where="id>=0 AND id < 1000000" | \
gzip....
Dann wiederholen Sie das mit diesen Zeilen.
--where="id>=1000000 AND id < 2000000" | \
--where="id>=2000000 AND id < 3000000" | \
...
bis Sie alle Zeilen erhalten. Schmerzen im Nacken, aber es wird funktionieren.