首页 > 数据库 >【mysql】数据写入超时

【mysql】数据写入超时

时间:2024-09-04 12:04:51浏览次数:4  
标签:语句 服务 写入 mysql 日志 超时

问题描述

一周前升级过的平台,突然间无法登录了,
初步排查,发现是其中某个服务写数据时,数据库连接超时。

既然是连接超时,
就尝试一下 telnet mysql服务是不是通的,—— 连接没问题。。。
是不是密码错了? —— 密码没有错
重启大法试一下? —— 能启动,但是一旦接收请求时候,就连接超时。
难道是这个服务启动不依赖/不检测MySQL的连接情况? —— 换个服务试一下,貌似也还是能够正常启动
只是这个服务有问题吗? —— 这个服务是登录服务,不登录,好像没太好的办法测试其它业务,虽然可以通过接口调用,但当时确实没用这个方法去验证。并且其它服务启动也没有问题。

用超时的语句去navicat 试一下? —— 竟然真的操作超时了(一个insert 语句)!!! (当时也没有想过,为什么查询语句可以,但写入的数据不行)

是不是锁表了? —— 查了一下,有一大堆的事务未提交。。。emmmm,
把这些事务给 kill 掉? —— kill 事务这个操作也提交不了。

换一张表试试能不能写入? —— 使用 create table xx2 like xx, 然后再insert xx2, 提示“空间不足!!!!!”
终于找到原因了, —— 但是为什么 insert into xx 的时候,它没有这么明显的提示呢?只有用新表的时候,才给了这样的提示???

问题找到

原因就是没有空间了,
既然是没空间 —— 看一下是什么原因导致500G的磁盘被写满了。 df -h 一路查
看到是 mysql 下的 general.log 一个日志文件 300+G, 这可不允许啊,一个日志文件这么大,肯定有古怪。
把这个日志文件看一下,发现它是从近两个月所有mysql的操作语句(查,写)都记录下来了,两个月的操作日志,竟然撑到了300+G。
那这个文件能不能删? (个人感觉是没啥用的,但还是问下 dba 吧)
一番沟通下来后,emmm,使用 “ > general.log” 这个命令可以把数据清掉, 哟西。删吧。
同时使用把这个日志关闭掉 —— SET GLOBAL general_log = off

操作完这两个动作后,直接看疗效: OK了. !!!!

害,竟然捣鼓了这么久。

总结一下:
1、请求超时,不一定是事务有问题或死锁,也可能是空间不够了。
2、定位问题,数据查和写,是否表现出现的现象不一样,比如这里,可查不可写,定位的方向就会缩小很多
3、服务有打印日志,不用纠结那么久,先把语句从日志捞出来,拼好,去执行一下!不用猜,最大可能去还原,这样能省下不少时间
4、尝试使用测试表去验证,有时候会发现“新大陆”,比如在这里,语句拿出来了,虽然发现确实超时,但也不知道为什么,使用另外的测试表,它竟然就提示“没有空间”了,一下子就清晰了起来。

问题原因找到后,就会觉得,这问题真简单,但找到原因前,即使真相就在眼前,也会被忽略掉。

真相离我们很近,就看我们能不能发现它而已。

标签:语句,服务,写入,mysql,日志,超时
From: https://www.cnblogs.com/aaacarrot/p/18396185

相关文章

  • 20240904_122638 mysql 填空题 dcl
    记录用户帐户密码的数据表,保存在哪个数据库中mysql记录用户帐户密码的数据表,叫什么名字user创建了一个名为pyhui的用户,该用户只能从本地机器连接到MySQL服务器,并且其密码是abccreateuser'pyhui'@'localhost'identifiedby'abc'删除名为pyhui的用户,该用户只能从localho......
  • MySQL5.7.36之高可用架构部署-MHA
    配置关键:程序软连接(所有节点)。因为MHA只能从/usr/bin中进行调用ln-s/application/mysql/bin/mysqlbinlog/usr/bin/mysqlbinlogln-s/application/mysql/bin/mysql/usr/bin/mysql1、配置互信(主库上操作)rm-rf/root/.sshssh-keygencd/root/.sshmvid_rsa.pub......
  • mysql优化
    MySQL优化方向:在设计上:字段类型,存储引擎,范式在功能上:索引,缓存,分库分表在架构上:集群,主从复制,负载均衡,读写分离1.SQL优化1.1插入优化1.大量数据采用批量插入形式2.事务设置手动提交,MySQL默认是自动提交,意味着每写一个SQL事务就自动提交,可能会频繁的涉及事务开始和提交,所......
  • 基于java ssm jsp mysql微格教学视频标注系统毕业设计项目实战
    前言......
  • 基于java ssm jsp mysql网上书店销售管理系统毕业设计项目实战
    前言......
  • 基于java ssm jsp mysql网上订餐系统毕业设计项目实战
    前言......
  • 基于java ssm jsp mysql网上电子书店毕业设计项目实战
    前言......
  • 20240904_112638 mysql 填空题 事务
    开启事务starttransaction提交事务commit回滚事务rollback事务中创建一个名为c的存档点savepointc事务中回到名为m的存档点savepointm设置自动提交打开setautocommit=1设置自动提交关闭setautocommit=0......
  • MySQL 主从延迟的常见原因及解决方法
    主从延迟作为MySQL的痛点已经存在很多年了,以至于大家都有一种错觉:有MySQL复制的地方就有主从延迟。对于主从延迟的原因,很多人将之归结为从库的单线程重放。但实际上,这个说法比较片面,因为很多场景,并行复制方案也解决不了,譬如从库SQL线程被阻塞了,从库磁盘IO存在瓶颈等。......
  • MySQL——基础操作(2)
    一、创建表1.1SQL语法首先我们先来学习一下表的操作。后续都是对表的增删查改!创建表的语法:CREATETABLEtable_name(field1datatype,field2datatype,field3datatype)characterset字符集collate校验规则engine存储引擎;【注意】我们在上篇文章......