sqlite3.OperationalError: database is locked python-BaseException错误解决

报错有2种:

  • sqlite3.OperationalError: attempt to write a readonly database
  • sqlite3.OperationalError: database is locked python-BaseException

原因及解决方案:

1、被占用

由于SQLite只支持单线程。SQLite数据库在同一时间只能由一个连接执行写操作。如果有其他进程或程序(如SQLite专家工具、其他Python脚本、数据库管理工具等)正在访问或修改数据库,就可能导致这个错误。

  • 检查并关闭所有可能访问数据库的其他程序‌:确保没有其他软件(如SQLite Expert、Navicat、DB Browser等)正在打开或操作同一个数据库文件。

    在出现这个问题时,检查一下是否使用DB Browser同时打开了SQLite。将其关闭,即可解决该问题。

  • 在代码中检查并关闭所有数据库连接 ‌:确保在程序执行完毕后,所有数据库连接都已被正确关闭。例如,在Python中,可以使用conn.close()来关闭连接。

2)无权限

一般是运行目录归属不是执行程序用户的,只需要把根目录到db.sqlite3文件的权限改成777即可;

chmod 777 -R /path/to/db.sqlite3

注意这里你查 db.sqlite3 是777 没用,需要上级目录的权限也是。

相关推荐
2401_8822737212 小时前
CSS 背景色无法撑满父容器?解决浮动导致的高度塌陷问题
jvm·数据库·python
weixin_3812881813 小时前
jsoup如何读取html
jvm·数据库·python
逆境不可逃13 小时前
一篇速通Redis 从原理到Java实战(含缓存问题解决方案+集群配置)
数据库·redis·缓存
小卓(friendhan2005)13 小时前
基于Qt的音乐播放器项目
数据库·c++·qt
2401_8822737213 小时前
golang如何处理zip压缩包_golang zip压缩包处理思路
jvm·数据库·python
猫的玖月13 小时前
SQL语法简介
数据库·sql·oracle
tjc1990100513 小时前
Golang怎么实现分布式定时任务_Golang如何保证集群中定时任务不重复执行【进阶】
jvm·数据库·python
2301_7735536213 小时前
构建 Go CLI 应用的最佳实践:纯 Go 交互式命令行库选型与使用指南
jvm·数据库·python
qq_3729069313 小时前
c#如何添加按钮点击事件_c#添加按钮点击事件的几种常见用法
jvm·数据库·python
AI木马人13 小时前
8.【向量数据库深度对比】Milvus vs FAISS vs Pinecone(真实项目选型指南)
数据库·milvus·faiss