MySQL数据库执行Update卡死问题怎么解决
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍了MySQL数据库执行Update卡死问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL数据库执行Update卡死问题怎么解决文章都会有
千家信息网最后更新 2025年01月18日MySQL数据库执行Update卡死问题怎么解决
这篇文章主要介绍了MySQL数据库执行Update卡死问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL数据库执行Update卡死问题怎么解决文章都会有所收获,下面我们一起来看看吧。
问题分析
一般都是数据库事务未提交,导致update或者delete卡死。
解决办法
在执行完更新或删除后,记得将事务提交commit;
找到数据库客户端,执行commit操作。
如果还不行。 那么应该是数据库在执行数据操作失败 or 事务未提交 之后,将需要执行的sql语句锁死了。
过程复现和解决
通过如下命令查看数据库的自动提交状态
show variables like 'autocommit';
通过SQL设置数据库自动自动提交为关闭
-- on为开启,off为关闭set autocommit=off;-- 或者1为开启,0为关闭set autocommit=0;
表中数据如下:
打开两个窗口分别执行update操作
update car set color ='银色' where id = 1;update car set color ='红色' where id = 1;
查询正在执行的事务:
SELECT * FROM information_schema.INNODB_TRX;
根据图中事务的线程ID(trx_mysql_thread_id)可以看出对应的mysql 线程:一个1084 (update正在等待锁)另一个是1089(update 正在执行 没有提交事务)
可以使用mysql命令杀掉线程:kill 线程id
kill 1089;
期间如果并未杀掉持有锁的线程:则第二个update语句会提示等待锁超时。
相关命令:
-- 查看正在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 查看等待锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;-- 查询mysql数据库中存在的进程select * from information_schema.`PROCESSLIST`(show processlist;)
扩展
oracle的操作方式:
查询锁定记录
SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
删除锁定记录
ALTER system KILL session 'SID,serial#';
关于"MySQL数据库执行Update卡死问题怎么解决"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"MySQL数据库执行Update卡死问题怎么解决"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
数据
数据库
事务
问题
线程
正在
命令
知识
查询
内容
篇文章
语句
不行
两个
价值
办法
客户
客户端
操作简单
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
学生网络安全教育作用
深圳大学网络安全学院录取线
数据库索引最大的优点
数据库安装没反应
主流软件开发程序语言
WPS能不能编辑数据库
天然气网络安全应急预案
网络安全证书失效因为什么
产业互联网科技企业排名
ibm服务器远程管理软件
华为服务器主板接线图
在维普中文科技期刊数据库
中国网络安全法txt下载
文件如何存到数据库
护苗网络安全公益系列宣传片
徐汇区创新数据库服务价格查询
软件开发单位按什么科目
驰普科技软件开发
zanti连接服务器失败
网络技术推荐电脑
江苏数据库
菏泽数字化城管软件开发
图表组件软件开发
厦门软件开发厂家
闵行区常见网络技术售后服务
MSSQL数据库服务器角色权限
适合大学生表演的小品网络安全
甘肃网络软件开发定制市场价格
太原服务器数据恢复
如何在服务器上占用同道