MySQL服务意外停止

  先说一下,发现MySQL服务停了,启动就又好了,但是好奇服务意外停止的原因,所以看了一下MySQL的错误日志。

但是到底是哪个错误导致MySQL服务意外终止,还没有定论,故有了此篇文章,还望知道原因的大侠能告知~

环境:

  OS: windows server 2012 R2

  MYSQL: MySQL5.6

错误日志提示(部分)xx是被我替换后的:

2019-07-16 14:57:08 1304 [ERROR] D:Program FilesMySQLMySQL Server 5.6inmysqld.exe: The table 'xx' is full
2019-07-16 14:57:08 1304 [ERROR] D:Program FilesMySQLMySQL Server 5.6inmysqld.exe: The table 'xx' is full
2019-07-2019-07-17 15:42:34 3608  InnoDB: Encountered a problem with file .case3cache_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 FilesMySQLMySQL Server 5.6inmysqld.exe: The table 'xxxx' is full
2019-07-17 15:42:34 1304 [ERROR] D:Program FilesMySQLMySQL Server 5.6inmysqld.exe: The table 'xx' is full
2019-07-17 15:42:34 1304 [ERROR] D:Program FilesMySQLMySQL Server 5.6inmysqld.exe: The table 'xxxx' is full
2019-07-17 15:42:34 3608  InnoDB: Encountered a problem with file .xxxxxxxxxxxxx.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 FilesMySQLMySQL Server 5.6inmysqld.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服务挂掉(也是猜测,网上没有查到相关资料佐证)?

 

原文地址:https://www.cnblogs.com/zjfblog/p/11206199.html