Soru Bir sql.gz dosyasını veritabanıma nasıl yüklerim? (İthal)


Gzip bir SQL dosyasını doğrudan mysql içine almaya çalışıyorum. Bu doğru yol mu?

mysql -uroot -ppassword mydb > myfile.sql.gz

118
2018-05-03 07:06


Menşei


Sorunun gzip tarafını görmezden bile ok, yanlış yöne işaret ediyor ... - Matt Fletcher


Cevaplar:


zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database

> çıktılarını yazacak mysql komuta etmek stdout dosyaya myfile.sql.gz ki büyük ihtimalle istediğin gibi değil. Ayrıca, bu komut size MySQL kullanıcısı "root" şifresiyle ilgili bilgi verecektir.


187
2018-05-03 07:10



İyi bir güvenlik uygulaması olarak, şifremi komut satırına koyardım, mysql'in bunu isteymesini isterim. - Prof. Moriarty
Veya daha da iyisi: yarat ~/.my.cnf kimlik bilgileri ile. ;) - joschi
@Prof olarak. Moriarty, parolayı kullanmamak için komutu değiştirebilir. zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database. En son parametrenin kullanmak istediğiniz veritabanı olduğunu bilecek, şifreniz değil. - bafromca
Prof Dr.Moriarty'nin yorumunu biraz düzeltmek için iyi bir güvenlik uygulaması olurdu. değil şifremi komut satırına koy (tarihte saklanacak ya da omzunuzdan görülebilecek) ve MySQL'in buna izin vermesini isteyeceğim. Tek başına -p bayrağı MySQL'in şifre sorulmasını isteyecektir. - George
Lanet veritabanı dökümünden ayrılan bir şey için +1 - Dmitri DB


Bir sql.gz dosyasını içe aktarırken bir ilerleme çubuğu görüntülemek için, indir pv ve aşağıdakileri kullanın:

pv mydump.sql.gz | gunzip | mysql -u root -p

CentOS / RHEL'de, pv'yi yum install pv.

Debian / Ubuntu'da apt-get install pv.

MAC’da brew install pv


66
2017-11-03 19:46



pv Ubuntu reposlarında da var gibi görünüyor (en azından 12.04 LTS'de), ama yine de yapmanız gerekiyor sudo apt-get install pv Onu almak için. Teşekkürler Banjer, bu büyük veritabanı ithalatı için mükemmel! - toon81
Pv mydump.sql.gz | gunzip | mysql -u root my_database_name. Çünkü tabloları içe aktarıyordum ve root kullanıcım için bir şifre ayarlamam var. - Cristiano Mendonça
MAC’da brew install pv - score


En basit yol, içe aktarmadan önce veritabanı dosyasını unzip etmektir. Ayrıca belirtildiği gibi @Prof. Moriarty Parolayı komutta belirtmemelisiniz (şifre sorulacak). Bu komut alındı webcheatsheet veritabanını bir seferde unzip ve içe aktarılacak:

gunzip < myfile.sql.gz | mysql -u root -p mydb

48
2017-11-22 15:51



Ayrıca, mydb'nin içe aktarmadan önce oluşturulması gerekir. Bu sizin için db oluşturmaz. - Siddhartha
borularımı buldum gunzip 10GB'lık bir sıkıştırılmış dosyada içe aktarma işlemimin donmasına neden oldu. Bu bellek kısıtlamaları ya da bir şey nedeniyle emin değilim ama gelecekte bir anda bir adım yapmanın tarafında err istiyorum. - Ryan Tuck
@RyanTuck Bu tür süreçlerin sınırlarını zorluyor :) - icc97
@Siddhartha Bu sql döküm dosyasına bağlıdır. Bazen veritabanı ifadeleri oluşturmayı içerir. - rooby
@rooby bu mantıklı. - Siddhartha


Bir hata alırsanız zcathata mesajında ​​ek bir son ekin bulunduğu dosya adı bulunur. .Z, sonra kullanmayı deneyin gzcat yerine, açıklandığı gibi https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly


10
2017-07-08 13:59





Ayrıca SQL dosyasında herhangi bir USE ifadesi olup olmadığını kontrol edin. Veritabanını komut satırında belirtmek, SQL dosyasında farklı bir hedef belirtilirse verilerin orada kalmasını garanti etmez.


3
2018-05-03 11:28



Komutu şu şekilde genişletmeniz yeterli: pv mydump.sql.gz | gunzip | mysql -u root -p  your_database. Kabul edilen cevap bu yaklaşımı kullanır. - bafromca


MacOS'ta bunu kullandım:

zcat < [Database].sql.gz | mysql -u root -p [Database Name in MySQL]

Parolanızı girin ve voila!


3
2017-11-28 07:41





İçin bzip2 sıkıştırılmış dosyalar (.sql.bz2), kullanın:

bzcat <file> | mysql -u <user> -p <database>

VEYA

pv <file> | bunzip2 | mysql -u <user> -p <database>

ilerleme çubuğunu görmek için.


1
2017-08-01 15:25