MySql常用的故障分析方法

MySql常用的故障分析方法

排错常用命令

#查看日志是否开启
SHOW GLOBAL VARIABLES LIKE '%general%'; 

#开启日志
set GLOBAL general_log = 1; 

# 日志输出到表
set GLOBAL log_output = 'TABLE'; 

#查看当前执行的sql
SELECT * FROM mysql.general_log ORDER BY event_time DESC; 

#关闭日志(调试完成后,一定要关闭日志)
set GLOBAL general_log = 0; 

#查看最近一次 SQL 语句的错误信息
SHOW ERRORS;

#查看表最后一次更新时间
SHOW TABLE STATUS WHERE Name = 'your_table_name';

关于执行超时问题
Mysql数据库采用InnoDB模式,默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错。

#事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败
innodb_lock_wait_timeout = 600

# 查询全局等待事务锁超时时间
SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait_timeout';

# 设置全局等待事务锁超时时间
SET  GLOBAL innodb_lock_wait_timeout=100;

# 查询当前会话等待事务锁超时时间
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';

#表数据 45万条
delete from sign_list where id >400000; //此方式不可以

delete from sign_list where id >400000 limit 50000; //此方式可以

  • 查看当前有哪些连接
show processlist;

在这里插入图片描述

  • 查看当前执行的sql脚本
    1,查看日志是否开启:
SHOW GLOBAL VARIABLES LIKE '%general%';

在这里插入图片描述

2,如上图所示,日志处于关闭状态,然后需要先打开日志并输出到table中:

set GLOBAL general_log = 1; --开启日志
set GLOBAL log_output = 'TABLE'; -- 日志输出到表

在这里插入图片描述

3,查看当前执行的sql语句

SELECT * FROM mysql.general_log ORDER BY event_time DESC;

在这里插入图片描述

  • 查看指定表最后一次更新的时间
SHOW TABLE STATUS WHERE Name = 'your_table_name';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值