2016-07-14 18 views
1

So bin ich auf godaddy Shared Hosting. Datenbank und Daten von ungefähr 20 Tabellen mit 500mb Daten sichern müssen.Sicherung großer Datenbank auf Shared Hosting. versuchte mysqldump und phpmyadmin

Lösung versucht:

1. Lösung: phpmyadmin

versucht, einfach die Tabelle zu exportieren, und es beginnt zu exportieren, aber nicht zwischen wegen Fehler

mysql server has gone away 

So versuchte Löse dieses Problem, indem du wait_timeout erhöhst, aber auch darin versagt, weil ich auf Shared Hosting bin, erlaubt es mir nicht. gebe ich so etwas wie diese

#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation 

zweite Lösung Fehler versucht: mysqldump

Ran eine Tabelle mit 110000 Reihen zu sichern

mysqldump --user xxxxx --password=XXXXXXXXX Username wp_pc_products >> wp_pc_product.sql 

Dies führte zu einer Dateigröße von 55M folgendem Befehl Und enthält nur 124 Zeilen.

55M wp_pc_product.sql 

tatsächliches Problem:

Versuch, meine Datenbank von Shared-Hosting VPS zu migrieren.

+0

überprüfen Sie das Ende dieser .SQL-Datei. Wenn es nicht sauber beendet wird (z. B. in der Mitte einer Abfragezeile anhält), leidet der Speicherauszug unter der gleichen Zeitüberschreitung/Abbruchbedingung wie Ihre # 1-Lösung, und Sie müssen mit godaddy um Hilfe sprechen. –

+0

Nein, ich habe bereits überprüft .. Es enthält keinen Fehler. letzte Zeile der Datei '- Dump abgeschlossen am 2016-07-14 11:38:17 ' –

+0

dann sollte dieser Dump beok sein. Wie hast du die 500meg Dimensionierung herausgefunden? Zeilenzählungen müssen nicht unbedingt mit Zeilenzählwerten in der Datenbank übereinstimmen, insbesondere, wenn Sie die erweiterte Einfügesyntax aktiviert haben. dann bekommst du nur einen insert mit mehreren werten feldern, statt eines 500 'insert ... values ​​..' bekommst du' isnert .. values ​​(set1), (set2), (set3), etc ... 'on eine einzelne Zeile. –

Antwort

0

mysqldump benötigt nur einen > & nicht zwei >>. Kannst du das ändern?

Für die Tabelle wp_pc_products können Sie angeben, welche Zeile aus der Tabelle mysql als letzte exportiert werden soll. Was passiert, wenn Sie versuchen, die gesamte Datenbank mit mysqldump mit der Option -p zu exportieren. Funktioniert es? Haben Sie versucht, andere Tabelle zu exportieren & sehen, ob sie vollständig exportiert werden oder nicht?

+0

das ist egal. '>' gibt eine Datei aus und überschreibt eine vorhandene Datei. '>>' erstellt/hängt einfach an. Es ändert die Daten nicht. –

+0

Zuerst versuchte ich mit einem> nicht zwei .. die Ergebnisse waren gleich für einzelne> Operator –

+0

Wie kann ich finden, dass die Zeile aus der Tabelle zuletzt exportiert wird. Muss ich es manuell überprüfen? Ich weiß nicht, welche Sortierung es getan haben könnte. –

0

Lösung 1

Vielleicht ist die max Größe 55 MB ist, versuchen Sie diesen Befehl in mysql shell:

show variables like 'max%' ; 

Es wird die maximal zulässige Größe in Byte angezeigt werden soll.

Sie versuchen, die max Paketgröße einstellen könnte mit diesem Befehl 600MB:

set max_allowed_packet = 600*1024; 

Lösung 2

Da Sie eine Grenze für die Zeilen gefunden haben Sie Dump können, dann können Sie führen mehrere kleinere Deponien mit dieser Flagge:

--where="1 limit 100" 

Und Sie halten Inkrementieren es wie:

--where="101 limit 200" 

Dokumentation über --max_allowed_packet

Dokumentation über --where flag

Verwandte Themen