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

相关推荐
Polar__Star3 分钟前
jsoup如何读取html
jvm·数据库·python
亚空间仓鼠5 分钟前
关系型数据库MySQL(三):主从复制
数据库·mysql
a9511416426 分钟前
怎么防范通过phpMyAdmin上传WebShell_禁止into outfile权限
jvm·数据库·python
InfinteJustice8 分钟前
如何统计SQL分组汇总数据_详解GROUP BY与HAVING用法
jvm·数据库·python
zhangchaoxies9 分钟前
如何使用 AWS Lambda 和 Python 获取 EMR 集群的标签列表
jvm·数据库·python
吕源林12 分钟前
如何处理SQL插入后的数据一致性校验_使用Checksum比对
jvm·数据库·python
Austindatabases14 分钟前
什么int类型里面能插入文字,还不能改字段类型--SQLite 五脏俱全系列 (2)
数据库·sqlite
2301_7775993715 分钟前
SQL如何实现动态分组统计_使用存储过程与动态SQL
jvm·数据库·python
Shorasul16 分钟前
HTML怎么在GeneratePress中精调图片对齐_GP轻量主题CSS覆盖方法
jvm·数据库·python
qq_3345635517 分钟前
Python开发Flask项目如何部署到云服务器_使用Fabric自动化发布脚本
jvm·数据库·python