记录宝塔使用报错db修复,database disk image is malformed

一直使用宝塔来管理服务器网站,最近在创建新的网站突然新增不了,报了一堆错误,忘记截图了。。。。。

去了官网找发帖找求助,发现刚注册还要等半小时。。。。

工具在文末

干脆自己动手

先去系统命令行输入bt 选22 结果出来报错日志:

File "class/db.py", line 419, in add
    result = self.__DB_CONN.execute(sql,self.__to_tuple(param))
sqlite3.DatabaseError: database disk image is malformed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/www/server/panel/BTPanel/__init__.py", line 2533, in publicObject
    res = run_obj.run(toObject, defs, get)
  File "/www/server/panel/BTPanel/__init__.py", line 2480, in run
    result = getattr(toObject, get.action)(get)
  File "class/panelSite.py", line 808, in AddSite
    public.M('domain').add('pid,name,port,addtime', (get.pid, main_domain, self.sitePort, public.getDate()))
  File "class/db.py", line 426, in add
    raise public.PanelError("数据库插入出错:" + "error: " + str(ex))
public.PanelError: 面板运行时发生错误: 数据库插入出错:error: database disk image is malformed

查了一下,sqlite 表文件出错了

bt后台使用python代码写的,根据上面提示的日志异常栈,找相关的代码,最后找到对应的的sqlite db文件,我这里对应的数据库文件是site.db

db文件损坏了,网上找了一堆解决方案,我执行下来有效的是,使用工具从损坏的db文件里面到处sql,然后新建一个db文件,把对应的sql导入到db里面

使用修复工具

执行命令:

sqlite> .open site.db
sqlite> .output tmp1.sql
sqlite> .dump
sqlite> .quit

得到sql

有了sql文件,一切就好办了,创建一个新的db数据库文件

找一个sqlite3 的gui工具,我这边使用的是idea自带的,然后链接上面创建的site2.db,执行导出来的sql文件

执行完成后最后上传到宝塔覆盖原来的db文件,在宝塔上重新操作创建文件,一切正常

修复工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值