使用CMD在Mysql中导入压缩文件

3

我正在尝试使用命令提示符将压缩数据库文件导入到Mysql中,使用以下命令:

7z < backup.sql.7z | mysql -u root test

根用户没有关联任何密码。我的目标是空白数据库test。我使用7zip进行解压缩。被压缩的数据库即备份.sql.7z位于D驱动器。然而,它出现了以下错误。 enter image description here 因此,我使用了以下命令。
7z < backup.7z | mysql -u root test

注意:这一次我使用的是backup.7z而不是backup.sql.7z

但是我收到了以下错误:enter image description here

很明显我的SQL语法有问题。

那么正确的语法应该是什么?

2个回答

6

我也需要从压缩文件中导入,通过查找了解到了你的问题。在尝试了一段时间后,我发现以下方法可以实现:

7z x -so backup.7z | mysql -u root test

x 是提取命令
-so 使7-zip写入标准输出(stdout)


是的,这个真的有效。非常感谢@Wang。您是否有其他可行的脚本,可以对其他类型的压缩应用程序(如winzip、gz等)执行相同的工作?再次感谢您。 - Subrata
2
关于我一直在苦苦挣扎的问题,我想提醒大家 - 如果你需要为mysql提供密码,使用“-p password”是不起作用的,你必须连续输入:"-ppassword"。也许这能帮助到某些人。 - Czechnology

0

你的语法没有问题,只是7zip有限制。在这种情况下最好使用xz,它不会在stdout中放置多余的垃圾,或者直接使用你喜欢的编程语言调用7z.dll。7z.exe真正意义上是用于存档管理,而不是类Unix的管道操作,Igor非常不愿意改变这一点。

如果你尝试使用7z < somefile.7z,你会立即看到返回的只是一个用法列表。


我也尝试了 xz −−decompress −−stdout backup.sql.gz | mysql -u root test 但是出现了错误 xz: backup.sql.zip: 文件格式无法识别 - Subrata
xz 理解 .xz。gzip 理解 .gz。如果你想脚本化导入许多不同的备份类型,你需要解析扩展名;如果你手动完成,则只需要使用正确的工具来完成任务。 - SilverbackNet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接