服务器磁盘空间满之后导致mysql(mariadb)无法启动 Can't init tc log

导语:有一位客户由于没有注意磁盘空间的大小,导致磁盘空间的使用率为100%,于是数据库就启动不了了,日志中提示Can’t init tc log。

问题描述

打开网页提示连接数据库失败,在服务器使用df -h命令查看情况磁盘使用率为100%。

客户使用的是XAMPP集成环境搭建的web服务。

解决步骤

删除网站日志文件。

cd /opt/lampp/logs
ls 
rm XXXXXXXXX.log

删除的时候请注意不要删除了有用的文件。删除完日志文件后,磁盘可用空间并没有减少,通过询问,原来客户上传了很多无用的文件,一并删除后,磁盘可用空间增加到46%。

重启mysql服务。

/opt/lampp/lampp startmysql

查看mysql是否已经运行起来。

ps -axu

叶子发现mysql并没有启动。切换到mysql错误目录,查看具体的启动错误。

cd /opt/lampp/var/mysql
ls
cat izuf78ndt6y7qr3xymz109z.err

可以看到最后的提示为:

2018-01-02 11:43:16 139786760734528 [Note] InnoDB: Using SSE crc32 instructions
2018-01-02 11:43:16 139786760734528 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2018-01-02 11:43:16 139786760734528 [Note] InnoDB: Completed initialization of buffer pool
2018-01-02 11:43:16 139786760734528 [Note] InnoDB: Highest supported file format is Barracuda.
2018-01-02 11:43:16 139786760734528 [Note] InnoDB: 128 rollback segment(s) are active.
2018-01-02 11:43:16 139786760734528 [Note] InnoDB: Waiting for purge to start
2018-01-02 11:43:16 139786760734528 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.34-79.1 started; log sequence number 1181473902
2018-01-02 11:43:16 139786449975040 [Note] InnoDB: Dumping buffer pool(s) not yet started
2018-01-02 11:43:16 139786760734528 [Note] Plugin 'FEEDBACK' is disabled.
2018-01-02 11:43:16 139786760734528 [Note] Recovering after a crash using tc.log
2018-01-02 11:43:16 139786760734528 [ERROR] Can't init tc log
2018-01-02 11:43:16 139786760734528 [ERROR] Aborting

错误为tc log无法初始化。

这个tc log就在错误日志的目录下,将它删除掉。

rm -f tc.log

然后重启mysql。

/opt/lampp/lampp startmysql

这样mysql就可以了,tc.log文件会自动重新创建,

结束

你学会了吗?

发表评论

电子邮件地址不会被公开。 必填项已用*标注