2014-10-29 108 views
-2

下面给出的是我得到的mysql错误日志。我们的应用程序每秒只能获得10-20个请求,但每隔半小时我就会在mysql日志中收到此错误,并且mysql会自动停止。Mysql服务器频繁关闭

2014-10-29 16:52:01 5114 InnoDB: Encountered a problem with file .\ib_logfile1 
2014-10-29 16:52:01 5114 InnoDB: Disk is full. Try to clean the disk to free space. 
2014-10-29 16:52:01 5114 InnoDB: Assertion failure in thread 20756 in file fil0fil.cc  line 5475 
InnoDB: Failing assertion: ret 
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. 
2014-10-29 16:52:17 44652 [ERROR] C:/Program Files (x86)/MySQL/MySQL Server  5.6/bin\mysqld: Sort aborted: Error writing file  'C:\DOCUME~1\NETWOR~1\LOCALS~1\Temp\MY8E87.tmp' (Errcode: 28 - No space left on device) 
2014-10-29 16:52:21 44652 [ERROR] C:/Program Files (x86)/MySQL/MySQL Server 5.6/bin\mysqld: Sort aborted: Error writing file 'C:\DOCUME~1\NETWOR~1\LOCALS~1\Temp\MY8E86.tmp' (Errcode: 28 - No space left on device) 

回答

1

错误消息告诉你的记忆似乎是错误的:

Disk is full. Try to clean the disk to free space. 

靠近你的错误的底部记录此行显示:

5.6/bin\mysqld: Sort aborted: Error writing file 'C:\DOCUME~1\NETWOR~1\LOCALS~1\Temp\MY8E87.tmp' 
    (Errcode: 28 - No space left on device) 

对我来说,它看起来就像您正在尝试执行排序操作(也许在查询中执行ORDER BY子句)并且您正在使用硬盘驱动器上的临时空间。它看起来像MySQL正在服务器上使用NETWORK用户的用户临时目录。

你可能会在目录C:\DOCUME~1\NETWOR~1\LOCALS~1\Temp\看看是否有很多旧的垃圾临时文件潜伏,并删除它们。

我怀疑在撞车事件发生后,这很难找到; MySQL在崩溃时释放临时空间。

您可以告诉MySQL为其临时空间使用不同的磁盘。请参阅此信息。 http://dev.mysql.com/doc/refman/5.6/en/temporary-files.html

还有另一种可能性

它在错误日志说明您发布...也许你的表已损坏,您可以清除它。

InnoDB: 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 
+0

正如你指定的,我去了并检查文件路径(正如你怀疑mysql清除了所有文件)。但我担心的是,由于文件路径位于C:驱动器,我的C驱动器有5 GB的可用空间,因此显示的原因是什么(错误代码:28 - 设备上没有剩余空间) – user1850594 2014-10-29 13:05:11

+0

5GB可用空间临时文件在2014年并不是很多。你可以免费获得20或30GB的数据,看看它是否能够稳定你的系统? – 2014-10-29 17:10:53

+0

正如您所建议的,我将temp文件夹变量TMP和TEMP更改为具有400GB可用空间的另一个驱动器,但问题仍然存在。有趣的是,即使在改变之后,日志仍然显示C:\ DOCUME〜1 \ NETWOR〜1 \ LOCALS〜1 \ Temp \。我交叉检查了用户和系统的其他环境变量,并确认没有声明其他临时变量。 – user1850594 2014-10-30 04:40:01

1

2014-10-29 16:52:01 5114 InnoDB: Disk is full. Try to clean the disk to free space.

它清楚地记忆问题。提高系统

+0

我检查了mysql的硬盘空间和内存使用情况,都很好。 innodb ibdata1文件大小为1GB(这可能是问题,如果是的话,你可以告诉我如何解决它)。 – user1850594 2014-10-29 11:51:18