Jawaban:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>akan menulis output dari mysqlperintah stdoutke dalam file myfile.sql.gzyang kemungkinan besar tidak seperti yang Anda inginkan. Selain itu, perintah ini akan meminta Anda untuk kata sandi "root" pengguna MySQL.
~/.my.cnfdengan kredensial. ;)
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database. Itu akan tahu parameter terakhir adalah database yang ingin Anda gunakan, bukan kata sandi Anda.
Untuk menampilkan bilah progres saat mengimpor file sql.gz, unduh pvdan gunakan yang berikut:
pv mydump.sql.gz | gunzip | mysql -u root -p
Di CentOS / RHEL, Anda dapat menginstal pv dengan yum install pv.
Di Debian / Ubuntu apt-get install pv.
Di MAC, brew install pv
pvtampaknya berada di repo Ubuntu juga (setidaknya dalam 12,04 LTS itu), tetapi sekali lagi yang perlu Anda lakukan sudo apt-get install pvuntuk mendapatkannya. Terima kasih Banjer, ini sempurna untuk impor basis data besar!
brew install pv
Cara paling sederhana adalah dengan unzip file database sebelum mengimpor. Juga seperti yang disebutkan oleh @Prof. Moriarty Anda tidak harus menentukan kata sandi dalam perintah (Anda akan diminta kata sandi). Perintah ini yang diambil dari webcheatsheet akan di-unzip dan mengimpor database dalam sekali jalan:
gunzip < myfile.sql.gz | mysql -u root -p mydb
gunzippada file terkompresi 10GB menyebabkan impor saya membeku. tidak yakin apakah itu karena kendala memori atau sesuatu tetapi saya akan melakukan kesalahan di sisi melakukan satu langkah pada suatu waktu di masa depan.
Jika Anda mendapatkan kesalahan dari zcat, di mana pesan kesalahan berisi nama file dengan akhiran ekstra .Z, maka coba gunakan gzcatsebagai gantinya, seperti yang dijelaskan di https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly
Periksa juga apakah ada pernyataan USE dalam file SQL. Menentukan database pada baris perintah tidak menjamin bahwa data berakhir di sana jika tujuan yang berbeda ditentukan dalam file SQL.
pv mydump.sql.gz | gunzip | mysql -u root -p your_database. Jawaban yang diterima menggunakan pendekatan ini.
Untuk file terkompresi bzip2 (.sql.bz2), gunakan:
bzcat <file> | mysql -u <user> -p <database>
ATAU
pv <file> | bunzip2 | mysql -u <user> -p <database>
untuk melihat bilah kemajuan.
Anda dapat menggunakan -c, --stdout, --to-stdoutopsi gunzipperintah
sebagai contoh:
gunzip -c file.sql.gz | mysql -u root -p database