某次在linux服务器上重启mysql数据库发现各种报错,导致mysql数据库无法正常使用。

无论stop、start操作或是mysql连接都出现了不同的报错提示,具体报错为:

# service mysqld stop
ERROR! MySQL server PID file could not be found!

# service mysqld start
Starting MySQL.. ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).

# mysql -uroot -p
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

一、报错原因:

其实以上的三种不同mysql报错都源于一个原因,那就是根目录磁盘满了。

二、排查导致磁盘满的大文件:

1、首先使用df命令查看磁盘占用情况:
# df
也许在输出中你会看到:
/dev/mapper/VolGroup-lv_root 39841176 37788792 28552 100% /

2、使用 # du -sh * 查看大文件,例如根目录为data,使用命令查看:
# cd /data
# du -sh *

会发现显示mysql文件夹占用n多G,再查看具体哪些文件:
# cd mysql
# du -sh *

发现很多大文件,例如:
581M mysql-bin.000029
28K mysql-bin.000030
7.6G mysql-bin.000031
4.0K mysql-bin.000032

这些文件是MySQL Binary Log二进制文件,主要用于数据恢复和主从服务器的主从复制。

而鉴于我并没有主从服务器,所以我决定删掉他们。

三、解决方法:

1、删除掉这些大文件:
# rm -rf mysql-bin.000031
~~~

2、删除掉他们之后,在/etc/ 下面打开my.cnf,找到
log-bin=mysql-bin
binlog_format=mixed
把这两行注释掉,即在前面加上“ # ”号:
#log-bin=mysql-bin
#binlog_format=mixed

3、重新启动mysql服务器,就OK了。
service mysqld restart

举报/反馈

码农大蔡哥

20获赞 39粉丝
码农一枚,让编程融入生活,也热爱足球。
关注
0
0
收藏
分享