某次在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、数据恢复。
2、在主从服务器上提高复制的可靠性。这个其实是主要的作用,但是我根本没有主从服务器,所以用不着。
解决方法:
1、当然,删除掉这些大文件:
rm -rf mysql-bin.000031
~~~
2、删除掉他们之后,在/etc/ 下面找到my.cnf把
#log-bin=mysql-bin
#binlog_format=mixed
这两行注释掉。
3、重新启动mysql服务器。
service mysqld restart