正常运行的xampp突然不能启动mysql了,显示错误如下:
XAMPP: Starting Apache with SSL (and PHP5)…
XAMPP: Starting MySQL…
XAMPP: Couldn’t start MySQL!
XAMPP: Starting ProFTPD…
XAMPP for Linux started.
找到mysql的日志文件,用tail命令查看发现,
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
150105 21:45:51 InnoDB: Error: page 129480 log sequence number 2704672930
InnoDB: is in the future! Current system log sequence number 824740184.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
网上查了各种解决方案,都做了尝试:
1. 把ib_logfile0和ib_logfile1重命名,然后重启试试。
试过了,不行。
2. 如果觉得数据无所谓,而是只要可以正常的使用数据库。建议你把ibdata和日志文件都删掉。重启就可以正常运转了!
数据蛮重要的,不能就这么删除了。
3. 可能是InnoDB数据文件损坏了,先不要继续操作了。先把数据和配置文件备份一下防止乱弄把数据全弄坏了,然后再用副本试着恢复。
关于InnoDB的数据恢复 错误日志提示参照下面的网址:
http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html
你可以试着设定不同的innodb_force_recovery系统变量来重新启动MySQL,看看是不是有可以启动起来的值。
试过了,太复杂,都没什么效果。
本来想放弃的时候,想到了之前也遇到过的类似莫名其妙的问题。服务器没做任何改动,突然就不能启动了。之前都是日志文件太大,把磁盘占满了。这次会不会也是同样的问题。
果断的输入df -hl命令试试,Avail 0。可用空间为0,果然是磁盘太满了,先删点试试吧。
用du -bs dir_name命令,查看到底哪个目录最大了,发现是lampp/var/mysql/下的错误日志文件太大了,达16G。果断删除后,重启,问题解决。
2015.9.15补充:
又遇到mysql无法启动问题,上面方法都试过了,不行。
错误日志是: Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
主要是innodb日志大小不对造成的,修改了my.cnf文件
innodb_buffer_pool_size=512M
innodb_log_file_size=128M
把以上几个参数调大点,然后把ib_logfile0,ib_logfile1这两个文件删除后,再重启服务就好了。