MySQL服务意外停止
先说一下,发现MySQL服务停了,启动就又好了,但是好奇服务意外停止的原因,所以看了一下MySQL的错误日志。
但是到底是哪个错误导致MySQL服务意外终止,还没有定论,故有了此篇文章,还望知道原因的大侠能告知~
环境:
OS: windows server 2012 R2
MYSQL: MySQL5.6
错误日志提示(部分)xx是被我替换后的:
2019-07-16 14:57:08 1304 [ERROR] D:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe: The table 'xx' is full 2019-07-16 14:57:08 1304 [ERROR] D:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe: The table 'xx' is full 2019-07-2019-07-17 15:42:34 3608 InnoDB: Encountered a problem with file .\case3\cache_block.ibd 2019-07-17 15:42:34 3608 InnoDB: Disk is full. Try to clean the disk to free space. 2019-07-17 15:42:34 1304 [ERROR] D:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe: The table 'xxxx' is full 2019-07-17 15:42:34 1304 [ERROR] D:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe: The table 'xx' is full 2019-07-17 15:42:34 1304 [ERROR] D:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe: The table 'xxxx' is full 2019-07-17 15:42:34 3608 InnoDB: Encountered a problem with file .\xxx\xxxxxxxxxx.ibd 2019-07-17 15:42:34 3608 InnoDB: Disk is full. Try to clean the disk to free space. 2019-07-17 15:42:34 1304 [ERROR] D:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe: The table 'xxxx' is full InnoDB: Error: trying to access page number 4294967289 in space 5481, InnoDB: space name xx/yy, InnoDB: which is outside the tablespace bounds. InnoDB: Byte offset 0, len 16384, i/o type 10. InnoDB: If you get this error at mysqld startup, please check that InnoDB: your my.cnf matches the ibdata files that you have in the InnoDB: MySQL server. 2019-07-17 18:06:07 3c18 InnoDB: Assertion failure in thread 15384 in file fil0fil.cc line 5666 InnoDB: We intentionally generate a memory trap. InnoDB: Submit a detailed bug report to http://bugs.mysql.com. InnoDB: If you get repeated assertion failures or crashes, even InnoDB: immediately after the mysqld startup, there may be InnoDB: corruption in the InnoDB tablespace. Please refer to InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html InnoDB: about forcing recovery.
感觉关键信息有以下几点:
1.The table 'xxx' is full
2.Encountered a problem with file xxx.ibd
3.Disk is full
4.trying to access page number 4294967289 in space 5481
然后网上查资料呗~
结论:
结论1:bug说:
即“trying to access page number ”是mysql的一个bug 链接:链接
结论2:磁盘满了(可能性较大)
依据:Mysql:The table‘xxxx’is full 、Disk is full和“Encountered a problem with file xxx.ibd”(xxx是表名)
· 我们这个服务器在7-16号确实发生了数据库所在磁盘磁盘空间被占满,剩余空间为0的情况。
可是上次磁盘满了,数据库并没有挂啊,只是apache服务也没有挂。只不过apache写服务器的访问日志时出错,我删除了一些磁盘上不用的文件,并重启apache就好了。
而且table is full的信息,在16号就出现了,但是当时mysql服务并没有挂啊。
难带是因为table is full出现次数过多,导致数据库文件损坏(猜测,网上没有查到相关资料佐证),进而导致MySQL服务挂掉(也是猜测,网上没有查到相关资料佐证)?