最近发现mysql里的一个数据文件竟然高达150G,当时就懵了,

 ibdata1:就是这个文件150G

经过查文档发现原来,所有信息都存在这一个文件里,访问速度慢就不用说了,关键是将数据删除了,磁盘空间不释放,文件大小,不断的累计,这个就要命了,也就是说这是一个无底洞,迟早会把你的磁盘的空间给弄没,所以在测试服务器做了测试,也就是让 ibdata1 瘦身

#  在操作之前建议先将数据库设置为只读,防止数据出错
innodb_force_recovery = 4
# 先备份数据库:
mysqldump -uroot -proot --quick --force --all-databases > mysqldump.sql
# 停止数据库
service mysqld stop
# 删除这些大文件
rm /usr/local/mysql/var/ibdata1
rm /usr/local/mysql/var/ib_logfile*
#配置my.cnf
innodb_file_per_table=1
#对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件
# 手动删除除Mysql之外所有数据库文件夹,然后启动数据库
service mysqld start
# 还原数据
mysql -uroot -proot < mysqldump.sql

就这样差不多了,经过测试,删除表的数据后,对应的磁盘空间也正常释放了


数据库操作,博大精深,今天遇到的问题先记录在这