sqlite报错database is locked
问题描述
由于超级管理员也看不到我们组织,也没有权限更改用户的角色或邀请新用户,于是想要通过db直接修改数据的方式处理,无奈呀。。。操作流程如下:
- 登录Linux服务器连接sqlite数据库:sqlite3 /data1/grafana/data/grafana.db
- 更新用户权限:update org_user set role=‘Admin’ where id = 483 and user_id in (222,223);
- 更新成功后去页面验证发现没有成功,则直接更新所有用户的角色:update org_user set role=‘Admin’ where user_id in (222,223);
- 结果报错如下
sqlite> update org_user set role='Admin' where user_id in (222,223);
Error: database is locked
执行.quit退出连接后再次登录执行依然报错该异常,什么鬼?
问题定位
百度各种都是通过python脚本c语言等第三方连接后并发操作出现的异常,修改并发执行便解决了问题。但是我们没有并发执行啊。。。
但是问题定位确实是并发产生的。因为sqlite是库级别锁,只能同时有一个线程或进程执行写操作。那么看下进程咯。结果发现果然存在后台进程挂在后台
[...hostname...]$ ps -ef | grep sqlite
517 57160 55672 0 13:59 pts/2 00:00:00 sqlite3 /data1/grafana/data/grafana.db
517 64049 55672 0 14:57 pts/2 00:00:00 grep sqlite
[...hostname...]$ ps -ef | grep 57160
517 57160 55672 0 13:59 pts/2 00:00:00 sqlite3 /data1/grafana/data/grafana.db
517 64101 55672 0 14:57 pts/2 00:00:00 grep 57160
[...hostname...]$ ps -ef | grep 55672
517 55672 55671 0 13:48 pts/2 00:00:00 -bash
517 57160 55672 0 13:59 pts/2 00:00:00 sqlite3 /data1/grafana/data/grafana.db
517 64110 55672 2 14:58 pts/2 00:00:00 ps -ef
517 64111 55672 0 14:58 pts/2 00:00:00 grep 55672
[...hostname...]$ who am i
ops pts/2 2020-06-19 13:45 (172.24.1.41)
[...hostname...]$ exit
logout
There are stopped jobs.
[...hostname...]$ exit
logout
明明已经执行了.quit退出sqlite客户端,为什么还会有后台进程在执行写操作?无奈
问题解决
问题定位后解决方法就很简单咯,杀掉后台进程即可。委婉点,我直接退出当前ssh连接重新登录跳板机,跳到目标机器再次执行。木有异常了_
sqlite报错database is locked相关推荐
- Grafana 6.7的sqlite3数据库报错“database is locked”的修复方法
服务器意外断电后,Grafana能启动,但无法正常访问,日志里报"database is locked",问题原因是grafana.db这个文件在断电时出现了数据不一致的状态,修复 ...
- sqlite报错:sqlite3.OperationalError: near “updata“: syntax error
sqlite报错:sqlite3.OperationalError: near "updata": syntax error 在进行sqlite操作时,很容易因为看错或者手误造成报 ...
- python操作sqlite报错:sqlite3.OperationalError: unrecognized token: “630008.OF“
python操作sqlite报错:sqlite3.OperationalError: unrecognized token: "630008.OF" 分析:Ana:column的名 ...
- 使用qt操作sqlite,报错attempt to write a readonly database
今天做嵌入式课设时,踩了attempt to write a readonly database的坑,我首先想到的是通过 chmod 777的方式扩大我所创建的sqlite数据库的权限,但是仍然报错. ...
- 解决 SQLite报错:OperationalError: row value misused
python操作sqlite时,写了这样一条语句: ("""SELECT (content, describe, id) FROM DAILYTASK WHERE nee ...
- MySQL卸载不干净回不到初始安装页面(MySQL Connector Net卸载不了),重装报错Database initialization failed等问题解决办法
首先,这篇文章适合 1.常规卸载方法无法卸载干净导致重装始终回不到初始安装页面,即回不到下图初始状态,始终是welcome back (这部分我会单独讲一下MySQL Connector Net卸载不 ...
- C#操作SQLite 报错 (Attempt to write a read-only database)
解决办法:找到SQLite数据库所在的文件夹,单击右键,属性->安全,为Users用户组添加写入权限.
- 使用Database Navigator插件进行连接sqlite报错invalid or incomplete database
问题一: 需要直接在第一行添加位置,改为: 问题二:路径包含中文 改为:
- springboot中使用druid查询sqlite报错getFetchDirection error ResultSet closed
解决办法是将pool-prepared-statements改为false,max-pool-prepared-statement-per-connection-size改为-1或注释掉. 如果没配置 ...
- zabbix3.2 报错 Database error
一.Database error The frontend does not match Zabbix database. Current database version (mandatory/op ...
最新文章
- 基本数据类型和引用数据类型作为参数时候的问题
- 算法学习:AC自动机
- python3 性能提升_整理下Python性能语法,非常有效的提高性能的tips
- 谷歌OKR指导手册 (译)
- hadoop hdfs访问权限更新延迟问题
- 如何保存一个函数_如何表达一个“分段函数”之学习Matlab Function模块
- StratifiedKFold和KFold(5折验证)交叉验证的联系和区别Python实例
- web高德地图怎么加载离线地图_怎么验证全国离线卫星地图缓存文件的完整性
- 园龄一年了,可还未动笔.
- 开发错误记录5-Failed to sync Gradle project ‘HideTitleDemo’
- Java开发面试题汇总 -- 精选版(附答案)
- 汇编语言--x86汇编指令集大全
- web逻辑思维题目_有关于最难的逻辑思维题目及答案
- oracle数据透明加密,使用ORACLE 透明数据加密 TDE
- canvas 水墨画效果
- 7年老Android一次操蛋的面试经历
- Excel 2010 SQL应用078 DATEPART函数与TRANSFROM函数
- 3D打印机硬件驱动-马林固件最新版本2.0.X中文注释(1)marlin 2.0.9.2 截至发稿时间2021年12月16日
- 微信小程序个性头像、国庆头像、新年头像、圣诞头像等合成
- 【HTMLayout学习】学习缘由、什么是HTMLayout?
热门文章
- PHP swoole解密,[讨论]php7.3如何解密swoole
- 富爸爸穷爸爸读书感言
- python中 使用EVO工具 批量评估里程计 脚本
- NPOI遍历excel表格
- 搭建vue脚手架全教程
- 【对话系统】Knowledge-Grounded Dialogue Generation with a Unified Knowledge Representation
- html超链接位置居中,html 标题 超链接 居中 换行 图片 新标签页
- hive清空外部表的三种方式
- could not resolve xxx.jar
- 读懂这三本书,才算真懂大数据!(套装共3册) (如何读懂大数据主题系列) - 电子书下载(高清版PDF格式+EPUB格式)...