2011-12-20 159 views
0

我启动MySql服务器时出现问题。 日志说:无法启动MySql服务器

InnoDB: Error in opening ./ibdata1 
111220 16:16:43 InnoDB: Operating system error number 11 in a file operation. 
InnoDB: Error number 11 means 'Resource temporarily unavailable'. 
InnoDB: Some operating system error numbers are described at 
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html 
InnoDB: Could not open or create data files. 
InnoDB: If you tried to add new data files, and it failed here, 
InnoDB: you should now edit innodb_data_file_path in my.cnf back 
InnoDB: to what it was, and remove the new ibdata files InnoDB created 
InnoDB: in this failed attempt. InnoDB only wrote those files full of 
InnoDB: zeros, but did not yet use them in any way. But be careful: do not 
InnoDB: remove old data files which contain your precious data! 
/usr/libexec/mysqld: Disk is full writing './mysql-bin.000028' (Errcode: 28). Waiting for someone to free space... Retry 
in 60 secs 

后,我检查磁盘 - 它说,它的全部。 因此,在搜索解决方案后 - 我发现我需要清除二进制日志。 但是,为了清除 - 我需要启动MySql服务器,但磁盘上的所有空间都由二进制日志占用,所以我无法启动... 也不建议简单地删除二进制日志。 所以,我有点卡住了。 无法运行mysql来清除日志,并且无法清除日志,因为无法运行服务器。 有什么帮助吗? :)

编辑:该磁盘只包含日志,没有别的。

+0

有没有别的可以暂时移动somwhere其他磁盘上? – 2011-12-20 16:43:16

回答

0

如果磁盘是EXT [2 | 3 | 4]可以使用tune2fs来设置根保留到0中的光盘的一部分,给你或许足够呼吸室以启动服务器

这将是tune2fs -m 0/dev/whatever(在卸载之后,当然)

+0

谢谢,但事实并非如此。 – Yuri 2011-12-21 08:33:36

0

尝试使用选项--expire_logs_days =启动mysql服务器,它应该在启动时删除日志并比days更早。

再见 赞布罗塔

+0

谢谢,但似乎--expire_logs_days只是指定日志滚动的频率。但它不会使mysql立即滚动日志。 – Yuri 2011-12-21 08:35:05

+0

那么,文档报告:“可能的删除发生在启动时和二进制日志刷新。”,所以我想如果你使用类似mysqld --expire_log_days = 10的东西,它会删除所有旧的10天的binlog文件 – Gianluca 2011-12-21 09:03:27

+0

也许它发生在启动后,但是由于启动失败,它没有效果。 – Yuri 2011-12-22 10:07:06