sqlite执行VACUUM报database or disk is full的解决办法
原因
一般而言,报这个错是因为你的数据库占用空间过大,而默认的sqlite临时目录空间不足以存放,导致备份数据库出错
解决
解决办法很简单,执行之前使用临时环境变量SQLITE_TMPDIR
设置一个足够大的临时目录,如
1 | SQLITE_TMPDIR=/mnt/data sqlite3 data.db "VACUUM;" |
等待运行结束即可
注意:缺省sqlite3命令请自行安装
sqlite常用命令(注意命令前带字符.)
- 连接数据库:
sqlite3 data.db
- 退出:
.quit
或.exit
- 查看数据库文件信息命令:
.database
- 查看帮助信息
.help
- 释放空间:
VACUUM;