Antworten:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>schreibt die Ausgabe des mysqlBefehls stdoutin die Datei, myfile.sql.gzdie 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.cnfMit 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 pvFolgendes 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
pvscheint 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
gunzipauf 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 gzcatstattdessen 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-stdoutOption gunzipBefehl
zum Beispiel:
gunzip -c file.sql.gz | mysql -u root -p database