某次在linux服务器上重启mysql数据库发现各种报错,导致mysql数据库无法正常使用。
无论stop、start操作或是mysql连接都出现了不同的报错提示,具体报错为:
#servicemysqldstopERROR!MySQLserverPIDfilecouldnotbefound!
#servicemysqldstartStartingMySQL..ERROR!TheserverquitwithoutupdatingPIDfile(/data/mysql/mysql.pid).
#mysql-uroot-pERROR(HY):Can’tconnecttolocalMySQLserverthroughsocket‘/tmp/mysql.sock’(2)
一、报错原因:
其实以上的三种不同mysql报错都源于一个原因,那就是根目录磁盘满了。
二、排查导致磁盘满的大文件:
1、首先使用df命令查看磁盘占用情况:#df也许在输出中你会看到:/dev/mapper/VolGroup-lv_root%/
2、使用#du-sh*查看大文件,例如根目录为data,使用命令查看:#cd/data#du-sh*会发现显示mysql文件夹占用n多G,再查看具体哪些文件:#cdmysql#du-sh*发现很多大文件,例如:Mmysql-bin.02928Kmysql-bin.0307.6Gmysql-bin.0314.0Kmysql-bin.032
这些文件是MySQLBinaryLog二进制文件,主要用于数据恢复和主从服务器的主从复制。
而鉴于我并没有主从服务器,所以我决定删掉他们。
三、解决方法:
1、删除掉这些大文件:#rm-rfmysql-bin.031~~~
2、删除掉他们之后,在/etc/下面打开my.cnf,找到log-bin=mysql-binbinlog_format=mixed把这两行注释掉,即在前面加上“#”号:#log-bin=mysql-bin#binlog_format=mixed
3、重新启动mysql服务器,就OK了。servicemysqldrestart