mysql57常用的锁相关的配置和指令

常用的锁相关配置

#锁请求超时时间(秒)

innodb_lock_wait_timeout=60

备注:InnoDB行锁等待超时默认为50秒,一般建议设置5-10秒就够了;

#事务中某个语句锁请求超时将回滚整个事务

innodb_rollback_on_timeout=1

备注:默认在innodb_lock_wait_timeout超时后,只会回滚当前语句,造成不一致,开启后会回滚整个事务。

#开启/关闭死锁检测

nnodb_deadlock_detect=on/off

备注:默认是on,死锁检测会带来性能方面的影响,因此高并发场景下选择关闭。打开innodb_rollback_on_timeout,并配置innodb_lock_wait_timeout。

#死锁信息都保存到错误日志

innodb_print_all_deadlocks=1

常用的锁相关的指令语句#查看当前连接mysqlshowprocesslist;mysqlshowfullprocesslist;mysqlSELECT*FROMINFORMATION_SCHEMA.PROCESSLIST

#查看当前正在被锁的事务(锁请求超时后则查不到)

mysqlSELECT*FROMINFORMATION_SCHEMA.INNODB_LOCKS;

#查看当前等待锁的事务(锁请求超时后则查不到)

mysqlSELECT*FROMINFORMATION_SCHEMA.INNODB_LOCK_WAITS;

#查看当前未提交的事务(如果死锁等待超时,事务可能还没有关闭)

mysqlSELECT*FROMINFORMATION_SCHEMA.INNODB_TRX;

#查看正在被访问的表

mysqlshowOPENTABLESwhereIn_use0;#查看最近一个死锁情况mysqlSHOWENGINEINNODBSTATUS\G;日志相关

查看error日志的路径

mysqlshowvariableslike"%log_error%";

打开binlog

#打开binlog

log-bin=/var/log/mysql/mysql-bin/logbin.log

#配置serverid

server-id=1

解析binlog文件

mysqlbinlog[options]log-files

死锁的几种场景

见如下文章:




转载请注明:http://www.aierlanlan.com/rzdk/7988.html