我从 Linux 上的生产服务器创建并压缩(使用 bzip2)SQL 转储。
我想创建一个 shell 脚本来自动将其导入我的开发环境的数据库中(在 Mac OS 上)。
文件dump.sql.bz2可以使用 Mac OS Archive Utility 手动解压缩。但是当我使用诸如bzip2 -dck dump.sql.bz2
or之类的命令行时bunzip2 -k dump.sql.bz2
,sql 文件被转换为二进制文件并且不能被 mysql ( ERROR at line 1: Unknown command '\%'
) 利用,如您在此屏幕截图中所见:
什么是存档实用程序的等效命令行来在 Mac 上提取 bz2 sql 文件而不损坏它?可能这不是做我想做的最好的方法吗?
嗯,我找到了原因。我的 SQL 转储被压缩了两次,但名称不是dump.sql.bz2.bz2,只是dump.sql.bz2。二进制文件是只有第一层的解压结果。Mac OS Archive Utility 更加智能,因为它识别了这种双重压缩并恢复了原始 SQL 转储文件。
这对我有用。
这将解决您的问题
-c
switch 意味着输出到标准输出,你必须在使用时将标准输出结果指向某个地方-c