【已解决】程序访问存放在共享文件夹中的sqlite文件的在写操作时候提示: [SQLITE_READONLY] Attempt to write a readonly database (attempt to write a readonly database) 错误

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2023-06-21 15:39
  • 3805人已阅读
简介 springboot项目使用sqlite作为数据库的时候,sqlite数据库文件是放在共享目录中。在查询的时候是没问题的。但是如果写操作的话会提示如下: [SQLITE_READONLY] Attempttowriteareadonlydatabase(attempttowriteareadonlydatabase)出现问题描述:在未重启电脑之前,共享文件夹映射到本地磁盘,可以

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

springboot项目使用sqlite作为数据库的时候,sqlite数据库文件是放在共享目录中。在查询的时候是没问题的。但是如果写操作的话会提示如下:

 [SQLITE_READONLY]  Attempt to write a readonly database (attempt to write a readonly database)

8200510cea522d03abfac2b8d4b3238b.png

出现问题描述:

在未重启电脑之前,共享文件夹映射到本地磁盘,可以正常写操作。重启电脑后,发现没有写操作了。提示上面错误。

错误原因:

这个错误通常在用户试图向一个已经以只读模式打开的SQLite数据库中写入数据时发生。只读模式通常是用来保护数据库数据完整性的。

为了解决这个错误,您可以以读/写模式打开数据库,或者创建一个新的数据库。另外,您也可以确保您有足够的权限来写入数据库文件。

8f4fc87f3cbb26715ca29b84dfa2596b.png

来看看重启前访问这个映射到共享目录文件权限如下图:
2f8030bf8ea2dd2a005293576f474966.png

在来看看重启后文件权限:

236584f1a9508ae8e3e057d316d102e7.png

从上面两个图片中可以看出重启前后文件的权限变化了。具体变化如下:

重启前:

root用户是完全控制权;root Unix拥有读取和操作权限;Everyone用户也是拥有读取和执行权限的。

而重启电脑之后的权限变化:

root用户只有特殊权限;root Unix用户只拥有读取权限;Everyone用户也只拥有读取权限了。

知道了问题原因所在,那么下面,咱们就来解决这个问题。修改对这个文件的权限。修改步骤如下:

选中指定用户,然后点击编辑。如下图:

704014094d60a247a586761fe8af8d8e.png

在弹出层中可以看到当前拥有的权限。如下图:

4320572be4127e80ba2cbe34396891a7.png

把需要的权限都勾选上。选中后,点击确定



TopTop