zoukankan      html  css  js  c++  java
  • mysql错误: waiting for table metadata lock

    今天突然发现truncate一个表都慢到不行,于是 SHOW PROCESSLIST

    发现错误:waiting for table metadata lock
    解决方法:查看information_schema.INNODB_TRX拥有事务的trx_mysql_thread_id,kill trx_mysql_thread_id回滚事务.

    修改timeout默认值

    mysql> show variables like 'innodb_lock_wait_timeout';

    参数支持范围为Session和Global,且支持动态修改,所以可以通过两种方法修改;

    2.1 通过语句修改

    set innodb_lock_wait_timeout=100;

    set global innodb_lock_wait_timeout=100;

    注意global的修改对当前线程是不生效的,只有建立新的连接才生效

    2.2 修改参数文件/etc/my.cnf

    innodb_lock_wait_timeout = 50

    三、当等待超过阀值时的情况

    当锁等待超过设置时间的时候,就会报如下的错误;

    ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
  • 相关阅读:
    PHP中字符串和正则表达式的常用函数
    PHP基础语法
    vscode新手心得
    socket数据通讯
    PHP 登录类
    PHP Session 封装类
    php 邮箱验证函数
    PHP MySql 分页实例
    Bootstrap
    projact mail
  • 原文地址:https://www.cnblogs.com/kenwong/p/4775986.html
Copyright © 2011-2022 走看看