问题描述
从现场拿回来一个sqlite数据库文件,需要修改其中一张表里的一个字段的值。使用navicat打开后直接修改,提示attempt to write a readonly database。大意是试图修改一个'只读'的数据库。
解决历程
这个数据库的本质是一个文件,提示说它只读,应该是指这个文件的读写权限了。第一时间想到的是去查看这个文件安全属性。
于是进到这个文件的安全属性一通修改:修改文件所有者,修改所有者的权限,不知道具体是啥,就都给了完全控制。修改完以后再尝试,还是老样子。
网上还有人说可能是因为数据库工具不具有管理员权限,于是又用管理员权限启动navicat——既然这个方案出现在解决历程里,自然也是无果了,╮(╯▽╰)╭
亲测可用
头一天折腾了一会儿后就放弃修改了,因为现场要解决的问题想到了另一个曲线救国的办法。结果第二天又遇到新的问题,解决方向还是指向了修改sqlite文件。
最终,还是用了最开始上网查就查到的解决方案(但是懒,不想这么做):linux系统下,chmod。而我是windows系统,只能用mobaXterm将sqlite文件上传到linux服务器,然后chmod 777,最后再给下载回来。
这一通折腾,终于可以修改了,看来还是linux大法好啊,╮(╯▽╰)╭