You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite3数据库文件压缩后损坏:大小异常、类型变更及修复失败求助

问题根源:tar命令参数顺序完全搞反了!

你写的命令tar cf users.db /root/Desktop/users.tar完全弄反了输入输出的位置!tar的cf选项的正确格式是:tar cf [要生成的归档文件名] [需要打包的源文件]。

你这条命令的实际效果是:创建一个名为users.db的归档包,把/root/Desktop/users.tar这个文件打包进去——直接把你原来3MB的SQLite数据库给覆盖成了一个仅包含目标tar文件的小归档包。这就是为什么原文件和tar包都变成10KB,而且文件类型被识别成STL模型(系统误判了二进制签名)。

先验证这个结论

你可以执行这条命令确认当前的users.db是个tar包:

tar tf users.db

输出应该会显示/root/Desktop/users.tar,实锤它根本不是数据库文件。

关于恢复的坏消息

如果没有提前备份原数据库,那通过sqlite3 .dump修复是不可能的——因为现在的users.db已经完全被tar归档内容覆盖,原数据库数据已经丢失了。

正确的打包方式

如果还有可用的SQLite数据库备份,想要正确打包它,命令应该写成这样(假设要把users.db打包到桌面的users.tar里):

# 基础写法
tar cf /root/Desktop/users.tar users.db

# 加上-v参数可以看到打包过程,更直观
tar cvf /root/Desktop/users.tar users.db

打包后验证

完成打包后,记得做两步检查:

  • 查看tar包内容:tar tf /root/Desktop/users.tar,应该能看到users.db
  • 确认原数据库完好:ls -lh users.db,大小保持3MB左右,文件类型依然是SQLite3 database (application/x-sqlite3)

内容的提问来源于stack exchange,提问作者Fathy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:13:48