sqlite执行VACUUM报database or disk is full的解决办法


sqlite执行VACUUM报database or disk is full的解决办法

原因

一般而言,报这个错是因为你的数据库占用空间过大,而默认的sqlite临时目录空间不足以存放,导致备份数据库出错

解决

解决办法很简单,执行之前使用临时环境变量SQLITE_TMPDIR设置一个足够大的临时目录,如

1
SQLITE_TMPDIR=/mnt/data sqlite3 data.db "VACUUM;"

等待运行结束即可
注意:缺省sqlite3命令请自行安装

sqlite常用命令(注意命令前带字符.)

  1. 连接数据库:sqlite3 data.db
  2. 退出:.quit.exit
  3. 查看数据库文件信息命令:.database
  4. 查看帮助信息.help
  5. 释放空间:VACUUM;