mysql错误日志怎么找,mysql崩溃日志

首页 > 其他网络信息 > 作者:YD1662024-01-25 03:34:38

概述

死锁在平时工作中总是很常见,我们又不可能总是实时关注着,那么怎么去把发生死锁的一些情况记录下来呢?


1、配置文件

在MySQL 5.6版本中查看死锁,需要执行show engine InnoDB status\G;命令。

在MySQL 5.6/5.7或MariaDB 10.0/10.1版本中,在my.cnf配置文件里加入:

innodb_print_all_deadlocks=1

就可以把死锁信息打印到错误日志里。

mysql错误日志怎么找,mysql崩溃日志(1)


2、全局参数

mysql> show variables like '?adlock%'; mysql> set global innodb_print_all_deadlocks=1;

mysql错误日志怎么找,mysql崩溃日志(2)


3、死锁实验

3.1、准备数据

mysql> create table t1(id int,name varchar(20)); mysql> insert into t1 values(1,'b'); mysql> insert into t1 values(5,'c'); mysql> commit; mysql> select * from t1; mysql> create index idx_t on t1(id); --后面update如果条件有索引,锁行,如果没有,锁表

mysql错误日志怎么找,mysql崩溃日志(3)

3.2、产生死锁

会话1: mysql> select * from t1; mysql> begin; mysql> update t1 set name='b1' where id=1; 会话2: mysql> select * from t1; mysql> begin; mysql> update t1 set name='c2' where id=5; 会话1: mysql> update t1 set name='c1' where id=5; ----等待 会话2: mysql> update t1 set name='b2' where id=1; ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction 会话1: mysql> update t1 set name='c1' where id=5; ------此时可以发现会话1执行成功

mysql错误日志怎么找,mysql崩溃日志(4)

首页 12下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.