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 没用,需要上级目录的权限也是。

相关推荐
gcw102414 分钟前
Cron专业工具:定时任务与开发办公的一站式在线工具箱
java·前端·数据库·工具·crontab·cron·spring cron
江华森16 分钟前
Gephi 可视化 + NetworkX 网络分析——《釜山行》人物关系(三)
数据库·python
whaledown21 分钟前
互联网大厂Java求职面试三轮提问详解(涵盖Spring Boot、微服务、Kafka等核心技术)
java·jvm·数据库·spring boot·微服务·面试·kafka
运维大师34 分钟前
【安全与故障排查】06-【复盘】生产数据库删库事故:RTO4小时恢复纪实
数据库·安全
ywl4708120871 小时前
Mysql,使用B+树存储的索引增删改查效率(七)
数据库·b树·mysql
喜欢的名字被抢了1 小时前
MongoDB基础入门:从安装到CRUD与索引优化
数据库·mongodb
婉然从物3 小时前
Flink SQL 元数据持久化实战:从“每次重启表消失”到“Hive Metastore 永久存储”
hive·sql·flink
不像程序员的程序媛10 小时前
系统cpu内存负载资源分析
运维·服务器·数据库
Jane Chiu11 小时前
Oracle DBMS_REDEFINITION(在线重定义)
数据库·oracle·分区表