一、发生场景
测试环境测试时发现程序报错了,报错位置指向了以下的SQL,那就先拿到DB执行看看是SQL的问题还是程序的问题,执行发现以下问题:XXX表满了。
这不是SQL问题,那就是数据库环境出问题了,去服务器查看数据库的日志:错误日志说这是写入日志时失败了。
二、查看MySQL日志
1.执行 mysql -uroot -p 命令
2.输入密码,此处的密码是看不到的,盲输就好了
3.输入show variables like 'general_log_file'; 命令,查看日志文件路径
4.输入 show variables like 'log_error'; 命令,查看错误日志路径
5.输入 show variables like 'slow_query_log_file'; 命令,查看慢查询日志命令。
6.执行 exit 命令可以退出
三、解决问题
经过百度,GPT等搜索,这里是因为磁盘满了导致的,如果不是这个原因,需要移步其他文章。
1.执行 df -h 命令,查看内存使用情况,发现/dev/vda1文件可用为0,找到问题了。
2.执行 cd / 命令进入根目录,执行du -sh * 命令,查看磁盘使用情况,这是清理后的,清理前root里面存储的文件达到了70G。
3.查看哪个文件占用最高,进入文件下,执行第二步的命令,一般来说是日志文件导致的,找到可以删除的日志,可以通过 rm -rf xxxx* 命令来进行删除,其中xxx代表文件名的一部分,删除后发现MySQL执行命令正常了!