加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite db错误: error14,unable to open datebase file

发布时间:2020-12-12 20:23:38 所属栏目:百科 来源:网络整理
导读:案例: 总能在我们以为一个功能没有问题的时候,神奇的测试组还是能够给我们找出一些让我们惊讶的bug,下面就是一例。 我们有个需求要去解析sqlite db的内容。正常情况都没有问题。但昨天出现了一个db文件存在,open操作成功,但查询的时候就返回14号错误,

案例:

总能在我们以为一个功能没有问题的时候,神奇的测试组还是能够给我们找出一些让我们惊讶的bug,下面就是一例。

我们有个需求要去解析sqlite db的内容。正常情况都没有问题。但昨天出现了一个db文件存在,open操作成功,但查询的时候就返回14号错误,也就是unable to open database file。

有几个困扰我们的地方:

1 db都是从iphone上取下来的,其他几个db都可以正常打开,查询,唯独这个不行。
2 将这个db放在Windows下,用SQLiteExpert可以打开,说明数据库本身没有问题。(当前是在Mac下)
3 将程序提升到root权限执行,database文件可以打开。这又根第一点有点矛盾,为啥只有这个需要权限呢?

于是带着这几点疑问找资料,以下是相关的几个知识点:

1 sqlite打开db的时候,一般会在db文件相同目录生成一个临时文件
2 mac下的系统目录创建文件是需要root权限的
3 而我们这个db又刚好是放在系统目录下

所以,尝试了一种解决方案,验证ok

1 如果db能正常打开,忽略
2 如果碰到error 14,那就将dbcopy到非系统目录再次尝试打开。

问题解决,但却没有彻底释疑,为啥就部分db出现这种情况呢?

元芳,你怎么看?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读