【问题标题】:how to dump sql.gz file in to mysql如何将 sql.gz 文件转储到 mysql
【发布时间】:2013-03-26 17:33:59
【问题描述】:

我已经将生产服务器上的几乎所有空间都分配给了我的表空间

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

问题是服务器没有太多空间来解压文件(大约需要 120 GB)

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

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

有什么方法可以让我在不解压的情况下转储压缩文件

任何建议都非常感谢

【问题讨论】:

    标签: mysql linux mysqldump compression


    【解决方案1】:

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

    1. 提取filename.sql.gz
    2. 将提取的文件从filename.sql重命名为filename.gz
    3. 再次提取

    希望能成功

    【讨论】:

      【解决方案2】:

      您应该告诉gunzip 写入标准输出。你现在所做的根本不会输出任何输出。

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

      【讨论】:

      • 谢谢它工作正常,sql.tar.gz 文件有没有类似的方法
      • 我从来没有遇到过这样的sql.tar.gz 文件,但是如果您的意思是包含sql 文件的tar.gz 文件,那么它将是tar -zvxOf somefile.tar.gz path/to/sql/file | mysql ...
      • 为什么是path/to/sql/file?我只用tar -zvxOf dump.tgz|mysql database -u ... ` 导入了我的文件
      • 我以为他在谈论一个tar.gz 文件,其中包含一个sql 文件。您的文件只是一个普通的 gzipped sql 文件,因此您也可以使用gunzip 命令。
      【解决方案3】:

      你可以使用这个导入。

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

      【讨论】:

        【解决方案4】:

        我们也可以使用下面的命令来达到同样的效果。这里我使用的是 gzip

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

        另一种方法如下所示

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

        【讨论】:

          【解决方案5】:

          我建议使用 gunzip。这是一个适用于 Windows 的:http://gnuwin32.sourceforge.net/packages/gzip.htm

          解压后,你可以上传你的.sql

          【讨论】:

            【解决方案6】:

            您可以尝试即时解压缩文件,例如:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-07-05
              • 2011-02-12
              • 2010-11-06
              • 2011-02-14
              • 2016-10-23
              • 2021-04-11
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多