我已经将生产服务器上几乎所有的空间都分配给了表空间
现在我有一个大约20GB的压缩转储文件需要转储到mysql
问题是服务器没有足够的空间来解压缩该文件(需要约120GB)
我尝试使用下面的命令,但失败了,因为它首先要解压缩该文件,然后才将输出重定向到mysql
gunzip dbdump.sql.gz | mysql -u root -proot123 -S /home/mysql55/tmp/mysql.sock
有没有办法在不解压缩的情况下倒出压缩文件?
非常感谢任何建议。
我已经将生产服务器上几乎所有的空间都分配给了表空间
现在我有一个大约20GB的压缩转储文件需要转储到mysql
问题是服务器没有足够的空间来解压缩该文件(需要约120GB)
我尝试使用下面的命令,但失败了,因为它首先要解压缩该文件,然后才将输出重定向到mysql
gunzip dbdump.sql.gz | mysql -u root -proot123 -S /home/mysql55/tmp/mysql.sock
有没有办法在不解压缩的情况下倒出压缩文件?
非常感谢任何建议。
你应该告诉gunzip
输出到标准输出。你现在正在做的不会管道任何输出。
gunzip -c dbdump.sql.gz | mysql (args...)
我知道这听起来很荒谬,但它被压缩了两次,所以:
filename.sql.gz
filename.sql
重命名为 filename.gz
希望这样能行。
gzip -d < dbdump.sql.gz | mysql (args..)
gzip -c dbdump.sql.gz | mysql (args..)
zcat dbdump.sql.gz | mysql -u username -p dbname
$ cat dbdump.sql.gz | gzip -cd | mysql
我建议获取gunzip。这是Windows的一个:http://gnuwin32.sourceforge.net/packages/gzip.htm
解压后,您就可以上传您的 .sql 文件。
sql.tar.gz
文件,但如果你的意思是一个包含sql
文件的tar.gz
文件,那么命令应该是tar -zvxOf somefile.tar.gz path/to/sql/file | mysql ...
。 - Andrew Maopath/to/sql/file
?我只是用tar -zvxOf dump.tgz|mysql database -u ...
导入了我的文件。 - rubo77sql
文件的tar.gz
文件。你的文件只是一个普通的gzipped sql文件,所以你也可以使用gunzip
命令。 - Andrew Mao