我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL未提交事务造成的等待事件怎么解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL未提交事务造成的等待事件怎么解决

本篇内容主要讲解“MySQL未提交事务造成的等待事件怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL未提交事务造成的等待事件怎么解决”吧!

开发人员过来说程序中无法修改数据
 ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
 
查看是如下SQL语句造成的
UPDATE
                MemberAttribute
        SET name = '而',required = 1, enabled = 1, sequence = 34
         
                , memberTemplate_id = 698
         
        WHERE
                id = 284 and deleted = false;

刚开始一直考虑死锁,但一直无死锁信息

如果单独的一条sql是不会千万死锁的,肯定有其他语句
查看未提交的事务
SELECT
     a.trx_id,
     a.trx_state,
     a.trx_started,
     a.trx_query,
     b.ID,
     b.USER,
     b.DB,
     b.COMMAND,
     b.TIME,
     b.STATE,
     b.INFO,
     c.PROCESSLIST_USER,
     c.PROCESSLIST_HOST,
     c.PROCESSLIST_DB,
     d.SQL_TEXT
FROM
     information_schema.INNODB_TRX a
LEFT JOIN information_schema.PROCESSLIST b ON a.trx_mysql_thread_id = b.id
AND b.COMMAND = 'Sleep'
LEFT JOIN PERFORMANCE_SCHEMA.threads c ON b.id = c.PROCESSLIST_ID
LEFT JOIN PERFORMANCE_SCHEMA.events_statements_current d ON d.THREAD_ID = c.THREAD_ID;
MySQL未提交事务造成的等待事件怎么解决

确实有未提交事务

查看未提交线程id
SELECT * FROM information_schema.INNODB_TRX \G
*************************** 12. row ***************************
                    trx_id: 188721461
                 trx_state: RUNNING
               trx_started: 2016-01-06 09:41:22
     trx_requested_lock_id: NULL
          trx_wait_started: NULL
                trx_weight: 26
       trx_mysql_thread_id: 2122328
                 trx_query: NULL
       trx_operation_state: NULL
         trx_tables_in_use: 0
         trx_tables_locked: 0
          trx_lock_structs: 24
     trx_lock_memory_bytes: 6544
           trx_rows_locked: 3003
         trx_rows_modified: 2
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
 trx_adaptive_hash_latched: 0
 trx_adaptive_hash_timeout: 0
          trx_is_read_only: 0
trx_autocommit_non_locking: 0
与niravana数据库相关的进程只有2122328
kill 2122328
再次修改即可

到此,相信大家对“MySQL未提交事务造成的等待事件怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL未提交事务造成的等待事件怎么解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么解决plsql因事务未提交造成的锁表问题

本篇内容主要讲解“怎么解决plsql因事务未提交造成的锁表问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决plsql因事务未提交造成的锁表问题”吧!1、执行以下语句可查询被锁的表 se
2023-06-22

编程热搜

目录