• MySQL死锁导致无法查询的问题


    之前从来没有遇到过mysql死锁的问题,今天第一次,查看了很多博客,问题终于解决啦,在此特意记录和分享。

    1.第一种方式:重启MySQL

    因为MySQL的事务产生了死锁,刚开始我是直接重启MySQL,但是不行,编辑这条数据的时候,页面还是一直在加载,没反应。

    第二种方式:

    2.执行sql:

    SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;  

    查看结果:

    trx_id trx_state trx_started trx_requested_lock_id trx_wait_started trx_weight trx_mysql_thread_id trx_query trx_operation_state trx_tables_in_use trx_tables_locked trx_lock_structs trx_lock_memory_bytes trx_rows_locked trx_rows_modified trx_concurrency_tickets trx_isolation_level trx_unique_checks trx_foreign_key_checks trx_last_foreign_key_error trx_adaptive_hash_latched trx_adaptive_hash_timeouttrx_id trx_state trx_started trx_requested_lock_id trx_wait_started trx_weight trx_mysql_thread_id trx_query trx_operation_state trx_tables_in_use trx_tables_locked trx_lock_structs trx_lock_memory_bytes trx_rows_locked trx_rows_modified trx_concurrency_tickets trx_isolation_level trx_unique_checks trx_foreign_key_checks trx_last_foreign_key_error trx_adaptive_hash_latched trx_adaptive_hash_timeout

    查看事件比较久的事务。如何当前时间select sysdate();AM 10:07而事务开始的时间是:AM 9:50,显示是不正常的。根据这个事务的线程ID(trx_mysql_thread_id)。

    执行命令:

    kill 线程ID  

    数据库修复正常。

    3.查看正在锁的事务

    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;  

    4.查看等待锁的事务

    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 
  • 相关阅读:
    动态内存Treap
    最大流Dinic
    图的遍历
    Aho_Corasick自动机(AC自动机)
    邻接表
    COJ 3007 Mr.Yang的小助手
    COJ 0601&0602 动态规划(二)及加强
    Codeforces 603A Alternative Thinking
    HDU 2222 Keywords Search
    codeforce--600D
  • 原文地址:https://www.cnblogs.com/kaile/p/10870201.html
Copyright © 2020-2023  润新知