今天查看服务器磁盘快满了,于是查找原因。发现了两个方面的原因;
1、mysql-bin.000001文件多且大;
mysql> reset master;
运行上面的命令,清除日志;
2、MySQL目录ibdata1文件过大;
1、备份数据库中的数据。
mysqldump -u root -p --extended-insert --all-databases --add-drop-database --disable-keys --flush-privileges --quick --routines --triggers > /home/all-database.sql //有的文档用的是这样的参数: mysqldump -q -uroot -p --add-drop-table --all-databases --events >/home/all-database.sql
登录后复制
如果ibdata1上百GB,备份过程可能需要几小时。
2、停止MySQL服务。
service mysql stop
登录后复制
3、删除ibdata1、ib_logfile*等文件
mv ibdata1 ibdata1.20160419 mv ib_logfile0 ib_logfile0.20160420 mv ib_logfile1 ib_logfile1.20160420
登录后复制
4、修改my.cnf配置文件
vi /etc/mysql/my.cnf
登录后复制
在[mysqld]子项下增加如下配置:
innodb_file_per_table = 1
登录后复制
6、重启MySQL服务
service mysql start ps -ef|grep mysql
登录后复制
7、恢复数据(重新导入数据)
mysql -u root -p Enter password: source /home/all-databaes.sql
登录后复制