Kilo Code 每次提示都报 "SQLiteError: database disk image is malformed" 怎么重置本地数据库?
【免费下载链接】kilocodeKilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode
如果你发现 Kilo Code 的每一条提示都以SQLiteError: database disk image is malformed失败,那么大概率是本地 SQLite 数据库损坏了。这个数据库保存 Kilo Code 的本地状态,包括会话(sessions)和历史记录。官方排查文档给出的处理方式是把损坏的数据库改名移走,让 Kilo Code 在下次启动时重建一个全新的数据库。本文按这个流程走一遍:确认数据库位置、停止后端、重置数据库,以及重置不生效时的升级手段。
先确认错误现象与适用环境
文档对这一问题的判定标准很明确:每次发送提示都失败,且错误为SQLiteError: database disk image is malformed。出现这个现象时再执行下面的重置操作。
操作在哪台机器上执行取决于 Kilo Code 运行在哪里:
| 环境 | 数据库默认路径 |
|---|---|
| Windows | %USERPROFILE%\.local\share\kilo\kilo.db |
| macOS | ~/.local/share/kilo/kilo.db |
| Linux | ~/.local/share/kilo/kilo.db |
| VS Code Remote SSH | 远程机器上的~/.local/share/kilo/kilo.db |
使用 VS Code Remote SSH 时,要检查并操作远程 Linux 机器上的文件,而不是你本地的 Windows 或 macOS 电脑。
确认数据库的实际路径
上表是稳定安装的默认路径。如果当前设置了KILO_DB、XDG_DATA_HOME,或者在使用开发渠道、隔离的开发环境,实际路径可能不同。当 kilo CLI 与受影响的安装处于同一环境时,用下面命令打印当前选中的数据库路径,优先以它的输出为准,而不是直接假设路径:
kilo db path日常的数据库检查与查询(比如用kilo db跑只读 SQL)参见 Session History and Search。
重置数据库(主路径)
前置条件:先关闭 VS Code,或先停止 Kilo 后端。文档明确提醒:活动事务可能同时占用kilo.db-wal和kilo.db-shm,所以在复制、替换或移动数据库之前必须停掉 Kilo,否则可能移动到一个不一致的状态。
在 Linux 或 Remote SSH 的远程机器上执行:
pkill -f "kilo serve" mkdir -p ~/.local/share/kilo mv ~/.local/share/kilo/kilo.db ~/.local/share/kilo/kilo.db.bak mv ~/.local/share/kilo/kilo.db-wal ~/.local/share/kilo/kilo.db-wal.bak 2>/dev/null mv ~/.local/share/kilo/kilo.db-shm ~/.local/share/kilo/kilo.db-shm.bak 2>/dev/null这段命令的作用:
pkill -f "kilo serve"会终止本机所有匹配的kilo serve进程,这就是“停止 Kilo 后端”一步;- 后三条
mv把数据库主文件及其 WAL/SHM 附属文件改名为.bak备份,而不是删除。kilo.db-wal和kilo.db-shm可能本来就不存在,所以这两行加了2>/dev/null忽略“文件不存在”的报错。
Windows 或 macOS 上则手动操作:进入数据库所在文件夹,把kilo.db以及同目录下的kilo.db-wal、kilo.db-shm(如果存在)改名备份,然后重启 IDE。
重置后的判断
重新加载 VS Code(或重连 Remote SSH)后,Kilo Code 会在下次启动时自动重建数据库。此时再发送一条提示:
- 提示不再报
SQLiteError: database disk image is malformed,说明重置生效; - 如果错误依旧出现,执行下面的升级手段。
注意文档给出的影响范围:改名这个数据库会重置该机器上 Kilo Code 的本地会话和历史。.bak文件建议保留,之后无论是提交给支持团队还是自行尝试恢复都用得上。
数据库重置无效时:完全重置本地 Kilo 数据
这是可选的升级分支,只有在上面的数据库重置没有解决问题时才使用。它比数据库重置影响更大——会连同本地配置和缓存文件一起移走。在 Kilo Code 所在机器(Linux 或 Remote SSH 远程机器)上执行:
pkill -f "kilo serve" mv ~/.local/share/kilo ~/.local/share/kilo.bak 2>/dev/null mv ~/.config/kilo ~/.config/kilo.bak 2>/dev/null mv ~/.cache/kilo ~/.cache/kilo.bak 2>/dev/null同样先pkill停止后端,再目录整体改名备份;2>/dev/null用于忽略不存在的目录。执行后重新加载 VS Code 或重连 Remote SSH,Kilo Code 会在下次启动时重建这些目录。
这一步会重置本地会话、历史记录、设置和缓存数据。文档建议保留改名后的目录而不是删除,以便恢复;如果之后要把备份分享给支持团队,先移除 API 密钥、令牌等敏感信息。
仍无法解决时
按文档流程仍不生效的话,走支持渠道。先抓取控制台日志:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac)打开命令面板,选择Developer: Open Webview Developer Tools; - 点 Console 面板顶部的 "Clear Console"(🚫 图标)清空旧日志;
- 复现出问题的操作,在 Console 页查看红色错误信息,怀疑连接问题时再看 Network 页;
- 右键选择 "Save as..." 或复制相关报错。
发送日志到 hi@kilocode.ai,并附上:控制台错误信息、复现步骤、问题截图或录屏,以及你的 IDE 版本和 Kilo Code 版本。
完整流程参考 Troubleshooting IDE Extensions 原文。
【免费下载链接】kilocodeKilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考