13

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

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

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

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

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

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

任何建议都非常感谢

4

6 回答 6

16

你应该告诉gunzip写到标准输出。您现在正在做的事情根本不会管道任何输出。

gunzip -c dbdump.sql.gz | mysql (args...)
于 2013-03-26T17:35:13.723 回答
5

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

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

希望它会起作用

于 2015-03-18T15:47:07.280 回答
3

We can achieve the same with the below command as well. Here i am using gzip

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

Another way is as given below

gzip -c dbdump.sql.gz | mysql (args..)
于 2014-07-16T06:22:00.413 回答
1

您可以使用它导入。

zcat dbdump.sql.gz | mysql -u username -p dbname
于 2020-08-25T05:53:32.760 回答
0

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

$ cat dbdump.sql.gz | gzip -cd | mysql
于 2015-01-22T14:24:35.110 回答
0

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

解压缩后,您可以上传您的 .sql

于 2017-09-22T14:49:47.153 回答