查看错误日志,发现:
080402 21:38:53 mysqld started
080402 21:38:53 InnoDB: Started; log sequence number 12 1999296381
/usr/local/mysql/libexec/mysqld: File "./mysql-bin.000067" not found (Errcode: 2)
080402 21:38:53 [ERROR] Failed to open log (file "./mysql-bin.000067", errno 2)
080402 21:38:53 [ERROR] Could not open log file
080402 21:38:53 [ERROR] Can"t init tc log
080402 21:38:53 [ERROR] Aborting
于是手动创建了"./mysql-bin.000067",可还是启动失败,错误日志:
080402 21:45:12 mysqld started
080402 21:45:12 InnoDB: Started; log sequence number 12 1999296381
080402 21:45:12 [ERROR] I/O error reading the header from the binary log, errno=-1, io cache code=0
080402 21:45:12 [ERROR] I/O error reading the header from the binary log
080402 21:45:12 [ERROR] Can"t init tc log
080402 21:45:12 [ERROR] Aborting
这个就头痛了,但是基本上怀疑问题出在mysql-bin.0000XX上,后来强人lm提供了一段资料
mysql5运行一段时间,在mysql/data目录下出现一堆类似mysql-bin.000***的文件,从mysql-bin.000001开始一直排列下来,有的占用了大量硬盘空间,高达上百兆。
这些文件是MySQL的事务日志log-bin。删除复制服务器已经拿走的binlog是安全的,一般来说网络状况好的时候,保留最新一个足矣(缺点是将无法使数据库恢复先前的状态)。logbin主要是用来做回滚和增量备份的。
还可以在my.ini里把log-bin注释掉,就不产生日志文件了。
于是,顺着这个线索,把/etc/my.cnf配置中的log-bin注释掉,果然问题解决