如何将sql.gz文件转储到mysql中

时间:2013-03-26 17:33:59

标签: mysql linux mysqldump compression

我已将生产服务器上几乎所有空间分配到我的表空间

现在我有一个大约20gb的压缩转储,需要将其转储到mysql

问题是服务器没有足够的空间来解压缩文件(需要大约120 GB)

我使用了beolw命令,但我失败了,因为它首先解压缩文件,然后将输出重定向到mysql

 gunzip dbdump.sql.gz | mysql -u root -proot123 -S /home/mysql55/tmp/mysql.sock 

有没有办法让我可以转储压缩文件而不解压缩

任何建议都非常感激

6 个答案:

答案 0 :(得分:12)

您应该告诉gunzip写入标准输出。你现在正在做的事情根本就是不输出任何输出。

gunzip -c dbdump.sql.gz | mysql (args...)

答案 1 :(得分:2)

我知道这很荒谬,但它被压缩了两次,所以

  1. 提取filename.sql.gz
  2. 将提取的文件从filename.sql重命名为filename.gz
  3. 再次提取
  4. 希望它能运作

答案 2 :(得分:1)

我们也可以通过以下命令实现相同的目标。我在这里使用gzip

gzip -d < dbdump.sql.gz | mysql (args..)

另一种方式如下所示

gzip -c dbdump.sql.gz | mysql (args..)

答案 3 :(得分:0)

您可以尝试动态解压缩文件,例如:

$ cat dbdump.sql.gz | gzip -cd | mysql

答案 4 :(得分:0)

您可以使用它导入。

zcat dbdump.sql.gz | mysql -u username -p dbname

答案 5 :(得分:-1)

我会建议获得gunzip。这是一个用于Windows:http://gnuwin32.sourceforge.net/packages/gzip.htm

解压后,您可以上传.sql