2012-12-05 7 views
33

Wie kann ich eine große (14 GB) MySQL-Dump-Datei in eine neue MySQL-Datenbank importieren?Wie kann ich eine große (14 GB) MySQL-Dump-Datei in eine neue MySQL-Datenbank importieren?

+0

Was passiert, wenn Sie versuchen es zu tun? Was hast du probiert und welche Ergebnisse hast du bekommen? –

+1

Ich versuchte es in phpmyadmin vor Ort, ich habe entweder meine Maschine aufgehängt oder begrenzte Zeit überschreiten. Ich habe es versucht, indem ich die Ausführungszeit geändert habe, das hat auch nicht geholfen. Sie können mir die Idee in PHP oder C oder Software von Drittanbietern geben, um die gesamte Müllkippe in kleine Stücke zu zerlegen. –

+0

Jungs, könntest du bitte meine Antwort als akzeptiert markieren? Vielen Dank! –

Antwort

19

Haben Sie versucht, nur den Befehlszeilenclient mysql direkt zu verwenden?

mysql -u username -p -h hostname databasename < dump.sql 

Wenn Sie das nicht tun können, gibt es eine beliebige Anzahl von Dienstprogramme, die Sie durch googeln, dass die Hilfe, die Sie importieren eine große Müllhalde in MySQL, wie BigDump

+0

Danke @Brian, ich werde Ihre Ideen folgen und Sie später wissen lassen. –

+1

+1 für BigDump, da es den größten Ärger beim Importieren großer Datenbanken wegnimmt. –

+0

mysql Befehl im Terminal funktioniert, um die Datenbank zu importieren .. aber nicht optimiert es ... –

105

finden kann ich um gesucht haben, und nur diese Lösung hat mir geholfen:

mysql -u root -p 

set global net_buffer_length=1000000; --Set network buffer length to a large byte number 

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number 

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour 

source file.sql --Import your sql dump file 

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete! 

Die Antwort here gefunden wird.

+4

Sir Ich habe das Internet seit mehr als 7 Stunden, bis ich das gefunden, was schließlich funktioniert. Du hast mein Leben gerettet ! – victory

+0

Es ist großartig zu hören, dass dir das geholfen hat! –

+3

Über Mariadb werden die Maximalwerte überprüft: 'set global net_buffer_length = 1048576; set global max_allowed_packet = 1073741824; ' –

-6

Sie benötigen

  • Bigdump Skript bigdump.php aus dem Download-
  • Dump-Datei Ihrer Datenbank von phpMyAdmin oder einem anderen Werkzeug erstellt, lässt es dump.sql nennen. Sie können auch komprimierte GZip-Dump-Dateien verwenden, lassen Sie es dump.gz nennen.
  • Konto für Ihre mySQL-Datenbank aufrufen
  • Konto für einige Webserver mit PHP installieren. Dieser Webserver muss eine Verbindung zur mySQL-Datenbank herstellen können. Diese Fähigkeit ist wahrscheinlich vorhanden, wenn Ihr Webserver und der mySQL-Server vom selben ISP stammen.
  • Einige gute Texteditor wie Notepad ++, um die Konfigurationsdatei zu bearbeiten.
  • Einige FTP-Client zum Hochladen der Dateien auf den Webserver.
  • Allgemeine Kenntnisse über Dateien, PHP, mySQL-Datenbanken, phpMyAdmin, FTP und HTTP
2

ich meine Erkenntnis in ein paar der Antworten veröffentlichen die ich gesehen habe, die nicht erwähnt, was in ich lief, und Lehrling dies würde sogar BigDump besiegen, so überprüfen Sie es:

Ich habe versucht, eine 500-Meg-Dump über Linux-Befehlszeile zu laden und immer die "Mysql-Server ist weg gegangen" Fehler. Einstellungen in der my.conf haben nicht geholfen. Wie stellte sich heraus, zu beheben ist es ... Ich war ein großer erweiterten Einsatz tun wie:

insert into table (fields) values (a record, a record, a record, 500 meg of data); 

ich die Datei als separate Einsätze wie diese formatiert werden benötigt:

insert into table (fields) values (a record); 
    insert into table (fields) values (a record); 
    insert into table (fields) values (a record); 
    Etc. 

Und die Speicher-Abbild zu erzeugen , habe ich so etwas wie dieses und es funktionierte wie ein Zauber:

SELECT 
     id, 
     status, 
     email 
    FROM contacts 
    INTO OUTFILE '/tmp/contacts.sql' 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    LINES STARTING BY "INSERT INTO contacts (id,status,email) values (" 
    TERMINATED BY ');\n' 
+0

Wenn Sie eine CSV-Dump gemacht hätten, wäre es wahnsinnig schneller geladen. –

-3

zu C: \ wamp64 \ alias \ phpmyadmin.conf und Änderung von:

php_admin_value upload_max_filesize 128M 
php_admin_value post_max_size 128M 

zu

php_admin_value upload_max_filesize 2048M 
php_admin_value post_max_size 2048M 

oder mehr :)

0

unter Windows verwende ich Navicat Premium. Sie können Datenbankobjekte von einer Datenbank in eine andere oder in eine SQL-Datei übertragen.Die Zieldatenbank kann sich auf demselben Server wie die Quelle oder auf einem anderen Server befinden.

Navicat Online Manual for windows

3

Erste Open> Kommandozeile

cd.. 

cd.. 

f: -- xampp installed drive 

cd xampp/mysql/bin 

mysql -u root -p 

set global net_buffer_length=1000000; --Set network buffer length to a large byte number 

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number 

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour 

use DATABASE_NAME; 

source G:\file.sql; --Import your sql dump file 

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete! 
-2

nach mysql Dokumentation keines dieser Werke! Leute passen auf!

mysql --user = user_name --password = IhrKennwort TEST_DB < d: /test.sql

Das funktioniert sicher so werden wir test.sql in die TEST_DB Art diese in die Schale laden!

Danke.

0

Verwenden Quelle Befehl große DB

mysql -u username -p 

> source sqldbfile.sql 

importiert dies einen großen DB importieren

Verwandte Themen