问题及说明:

当一个SQL事务执行完了,但未COMMIT,后面的SQL想要执行就是被锁,超时结束;报错信息以下:html

mysql> ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

处理步骤:

该问题发生环境为MySQL 5.6,在MySQL 5.5版本后,information_schema 库中增长了三个关于锁的表,分别以下:mysql

innodb_trx:当前运行的全部事务

innodb_locks:当前出现的锁

innodb_lock_waits:锁等待的对应关系

该问题能够直接从这个几张表入手,找到了一直没有提交的只读事务,而后 kill thread id

,最后确认只读事物是否被干掉了就OK了。解决步骤以下:

mysql> select * from information_schema.innodb_trx;

mysql> SHOW FULL PROCESSLIST;

mysql> kill 'thread id';

mysql> select * from information_schema.innodb_trx;

PS:如须要查看定位是哪条语句,能够在MySQL的binlog日志中查看根据id和时间定位查找语句。sql

MySQL事务知识点延伸:

1. 三个库的字段含义

mysql > desc information_schema.innodb_locks;

+-------------+---------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------------+---------------------+------+-----+---------+-------+

| lock_id | varchar(81) | NO | | | |#锁ID

| lock_trx_id | varchar(18) | NO | | | |#拥有锁的事务ID

| lock_mode | varchar(32) | NO | | | |#锁模式

| lock_type | varchar(32) | NO | | | |#锁类型

| lock_table | varchar(1024) | NO | | | |#被锁的表

| lock_index | varchar(1024) | YES | | NULL | |#被锁的索引

| lock_space | bigint(21) unsigned | YES | | NULL | |#被锁的表空间号

| lock_page | bigint(21) unsigned | YES | | NULL | |#被锁的页号

| lock_rec | bigint(21) unsigned | YES | | NULL | |#被锁的记录号

| lock_data | varchar(8192) | YES | | NULL | |#被锁的数据

+-------------+---------------------+------+-----+---------+-------+

10 rows in set (0.00 sec)

mysql> desc information_schema.innodb_lock_waits;

+-------------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------------------+-------------+------+-----+---------+-------+

| requesting_trx_id | varchar(18) | NO | | | |#请求锁的事务ID

| requested_lock_id | varchar(81) | NO | | | |#请求锁的锁ID

| blocking_trx_id | varchar(18) | NO | | | |#当前拥有锁的事务ID

| blocking_lock_id | varchar(81) | NO | | | |#当前拥有锁的锁ID

+-------------------+-------------+------+-----+---------+-------+

4 rows in set (0.00 sec)

mysql> desc information_schema.innodb_trx;

+----------------------------+---------------------+------+-----+---------------------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------------------------+---------------------+------+-----+---------------------+-------+

| trx_id | varchar(18) | NO | | | |#事务ID

| trx_state | varchar(13) | NO | | | |#事务状态:

| trx_started | datetime | NO | | 0000-00-00 00:00:00 | |#事务开始时间;

| trx_requested_lock_id | varchar(81) | YES | | NULL | |#innodb_locks.lock_id

| trx_wait_started | datetime | YES | | NULL | |#事务开始等待的时间

| trx_weight | bigint(21) unsigned | NO | | 0 | |#

| trx_mysql_thread_id | bigint(21) unsigned | NO | | 0 | |#事务线程ID

| trx_query | varchar(1024) | YES | | NULL | |#具体SQL语句

| trx_operation_state | varchar(64) | YES | | NULL | |#事务当前操做状态

| trx_tables_in_use | bigint(21) unsigned | NO | | 0 | |#事务中有多少个表被使用

| trx_tables_locked | bigint(21) unsigned | NO | | 0 | |#事务拥有多少个锁

| trx_lock_structs | bigint(21) unsigned | NO | | 0 | |#

| trx_lock_memory_bytes | bigint(21) unsigned | NO | | 0 | |#事务锁住的内存大小(B)

| trx_rows_locked | bigint(21) unsigned | NO | | 0 | |#事务锁住的行数

| trx_rows_modified | bigint(21) unsigned | NO | | 0 | |#事务更改的行数

| trx_concurrency_tickets | bigint(21) unsigned | NO | | 0 | |#事务并发票数

| trx_isolation_level | varchar(16) | NO | | | |#事务隔离级别

| trx_unique_checks | int(1) | NO | | 0 | |#是否惟一性检查

| trx_foreign_key_checks | int(1) | NO | | 0 | |#是否外键检查

| trx_last_foreign_key_error | varchar(256) | YES | | NULL | |#最后的外键错误

| trx_adaptive_hash_latched | int(1) | NO | | 0 | |#

| trx_adaptive_hash_timeout | bigint(21) unsigned | NO | | 0 | |#

+----------------------------+---------------------+------+-----+---------------------+-------+

22 rows in set (0.01 sec)

转自:

https://www.colabug.com/1912433.html

原文出处:https://www.cnblogs.com/leon0/p/10943711.html并发

mysql error 364_MySQL事务未提交致使整个表锁死相关推荐

  1. mysql——如何解决事务未提交导致锁等待

    背景 有一次同事使用 Navicat for MySQL 软件对某个表进行了 开启事物,导致我们一直查询不出数据. 这种情况在平时项目也会出现 事物未提交的情况. 那么问题来了,事物未提交导致锁等待如 ...

  2. mysql vip切换未重连问题_服务器断网事务未提交导致MYSQL锁表问题(ADSL拨号上网)...

    环境描述: 由于特殊原因服务器的网络是电信ADSL拨号上网的,用"自动切换IP精灵"进行自动断网重连,每次重新连上网络需要2s时间,设置2小时切换一次网络. MYSQL数据库在远程 ...

  3. 解决MySQL事务未提交导致死锁报错 避免死锁的方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/xuheng8600/article/d ...

  4. mysql事务未提交读_mysql事务之未提交读Read uncommitted(仅学习)

    1,Read uncommitted定义: wiki上的定义如下: 未提交读(READ UNCOMMITTED)是最低的隔离级别.允许脏读(dirty reads),事务可以看到其他事务"尚 ...

  5. 数据库事务未提交的初学理解

    初学数据库,对事务未提交的个人见解(个人学习记录) 本人大二.通过计算机组成的学习,同时最近对mysql事务的疑惑 事务提交前,涉及修改表操作的DML语句执行后,所造成的结果到底有没有写入永久性磁盘, ...

  6. 事务未提交而释放锁导致的Redis锁失效分析

    项目场景: 例如:一个user表,里面有个字段名称是account_money(账户金额). 现在的操作是,先查询这个表中账户余额多少,再加上前端传来的金额,最后更新到表中. 问题描述 Redis分布 ...

  7. mysql事务未提交 也未回滚

    文章目录 一.场景模拟 二.紧急处理 三.原因分析 四.相关命令 1.查看正在执行的事务 2.查看正在锁的事务 3.查看等待锁的事务 4.查看所有的线程列表 5.定位未提交的事务执行的sql语句 公司 ...

  8. mysql死锁释放时间参数_【Mysql】mysql 事务未提交导致死锁 Lock wait timeout exceeded; try restarting transaction 解决办法...

    问题场景 问题出现环境: 1.在同一事务内先后对同一条数据进行插入和更新操作: 2.多台服务器操作同一数据库: 3.瞬时出现高并发现象: 不断的有一下异常抛出,异常信息: org.springfram ...

  9. 事务未提交 别人能读取到吗_Mysql 事务-面试笔记

    问题汇总: 什么是事务 事务的特征-ACID 事务的原理 事务隔离级别 并发事务带来的问题 - 数据库隔离现象 不可重复读与幻读的区别 事务隔离机制解决方法 什么是MVCC MVCC是如何工作的 MV ...

最新文章

  1. 服务器邮箱备份文件在哪里,如何轻松将数据文件备份到电子邮箱?
  2. 【代码实战】基于pytorch实现中文文本分类任务
  3. MySQL不能查看表_mysql root用户登录后无法查看数据库全部表
  4. ABAP data extract 数据抽取总结
  5. 如何让asp.net应用程序定时自动执行代码
  6. Keras-9 实现Seq2Seq
  7. “东哥”之后,京东再申请“强东”商标
  8. openssl生成Windows证书
  9. js - JSON构造函数
  10. 优秀的管理者如何带好团队(这几个技巧你是否学会)
  11. 小米路由修改服务器密码,小米路由器怎么重新设置密码?
  12. pycharm 拼音检查
  13. android电视,手机控制,Android手机遥控电视:智能语音控制节目
  14. 15 个为编程初学者准备的网站
  15. Abbreviation----Java实现
  16. 计算机软考程序员常考知识点(1)
  17. halcon循环语句,条件句结构格式
  18. chrome突然打不开网页,其他浏览器可以,解决办法
  19. GDAL/OGR 地理要素样式
  20. 双循环是什么意思c语言,什么是双循环

热门文章

  1. win10系统Jinlk固件烧写
  2. android简易计算器
  3. 《动手学深度学习》报错 解决方案RuntimeError: DataLoader worker (pid(s) ...) exited unexpectedly
  4. Task01 文件处理与邮件自动化
  5. weblogic 与 tuxedo 互联 wtc
  6. Flutter系列之在 macOS 上安装和配置 Flutter 开发环境
  7. (一)通用定时器的相关介绍
  8. 高性能服务器架构(High-performace Server Architecture)
  9. python中breakpoint_Python3.7 特色(2)-breakpoint 內建除錯
  10. cisp含金量怎么样?