如何加载一个sql.gz文件到我的数据库? (input)

我试图直接将一个gzipped的SQL文件导入mysql中。 这是正确的吗?

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

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

>stdout上的mysql命令的stdout写入文件myfile.sql.gz ,这很可能不是你想要的。 另外,这个命令会提示你inputMySQL用户“root”的密码。

要在导入sql.gz文件时显示进度条,请下载pv并使用以下命令:

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

在CentOS / RHEL中,您可以使用yum install pv

在Debian / Ubuntu中apt-get install pv

在MAC中, brew install pv

最简单的方法是在导入之前解压缩数据库文件。 也正如@Prof所述。 Moriarty你不应该在命令中指定密码(你会被要求input密码)。 这个来自webcheatsheet的命令将一次性解压并导入数据库:

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

如果你从zcat得到一个错误,其中的错误信息包含带有额外的后缀.Z的文件名,那么请尝试使用gzcat ,如https://stackoverflow.com/questions/296717/zcat-wont-unzip -files-正确

同时检查SQL文件中是否有任何USE语句。 如果在SQL文件中指定了不同的目标,则在命令行指定数据库并不能保证数据在那里结束。

在OSX上,我使用了这个:

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

input你的密码,瞧!