Antworten:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>
schreibt die Ausgabe des mysql
Befehls stdout
in die Datei, myfile.sql.gz
die höchstwahrscheinlich nicht das ist, was Sie wollen. Zusätzlich werden Sie mit diesem Befehl zur Eingabe des Passworts des MySQL-Benutzers "root" aufgefordert.
~/.my.cnf
Mit den Zugangsdaten erstellen . ;)
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
. Der letzte Parameter ist die Datenbank, die Sie verwenden möchten, nicht Ihr Passwort.
Um beim Importieren einer sql.gz-Datei einen Fortschrittsbalken anzuzeigen, laden Sie pv
Folgendes herunter und verwenden Sie Folgendes:
pv mydump.sql.gz | gunzip | mysql -u root -p
In CentOS / RHEL können Sie pv mit installieren yum install pv
.
In Debian / Ubuntu apt-get install pv
.
In MAC, brew install pv
pv
scheint auch in den Ubuntu-Repos zu sein (zumindest in 12.04 LTS ist es das), aber du musst es wieder tun sudo apt-get install pv
, um es zu bekommen. Danke Banjer, das ist perfekt für große Datenbankimporte!
brew install pv
Am einfachsten ist es, die Datenbankdatei vor dem Import zu entpacken. Auch wie von @Prof erwähnt. In jedem Fall sollten Sie das Kennwort nicht im Befehl angeben (Sie werden nach dem Kennwort gefragt). Dieser Befehl aus dem Webcheatsheet entpackt und importiert die Datenbank auf einmal:
gunzip < myfile.sql.gz | mysql -u root -p mydb
gunzip
auf einer 10 GB komprimierten Datei verursacht mein Import zum Einfrieren. Ich bin mir nicht sicher, ob dies auf Speicherbeschränkungen oder etwas zurückzuführen ist, aber ich würde mich in Zukunft auf die Seite stellen, Schritt für Schritt vorzugehen.
Wenn Sie eine Fehlermeldung erhalten zcat
, in der die Fehlermeldung den Dateinamen mit einem zusätzlichen Suffix enthält .Z
, versuchen Sie gzcat
stattdessen die Verwendung , wie unter https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly beschrieben
Überprüfen Sie auch, ob die SQL-Datei eine USE-Anweisung enthält. Das Angeben der Datenbank in der Befehlszeile garantiert nicht, dass die Daten dort landen, wenn in der SQL-Datei ein anderes Ziel angegeben ist.
pv mydump.sql.gz | gunzip | mysql -u root -p
your_database
. Die akzeptierte Antwort verwendet diesen Ansatz.
Verwenden Sie für bzip2- komprimierte Dateien (.sql.bz2):
bzcat <file> | mysql -u <user> -p <database>
ODER
pv <file> | bunzip2 | mysql -u <user> -p <database>
Fortschrittsbalken zu sehen.
Sie können mit -c, --stdout, --to-stdout
Option gunzip
Befehl
zum Beispiel:
gunzip -c file.sql.gz | mysql -u root -p database