>  기사  >  데이터 베이스  >  释放mysql ibdata1文件空间

释放mysql ibdata1文件空间

WBOY
WBOY원래의
2016-06-07 15:19:391737검색

一、今天做压力测试,导入了大量的数据,发现空间应用的很厉害,ibdata1这个文件占用空间很大,删除了一个大数据库,但是ibdata1的空间没有释放。 二、分析: 在mysql数据库中,如果不指定innodb_file_perl_table参数,单独存在每个表的数据,mysql表空间的

一、今天做压力测试,导入了大量的数据,发现空间应用的很厉害,ibdata1这个文件占用空间很大,删除了一个大数据库,但是ibdata1的空间没有释放。



二、分析:

在mysql数据库中,如果不指定innodb_file_perl_table参数,单独存在每个表的数据,mysql表空间的内容都会放在这里,mysql的ibdata1存放数据和索引等。




三、处理:




备份数据库:

mysqldump -q -uroot -p --add-drop-table --all-databases > /usr/local/mysql/backup/all.sql


关闭msyql

cd /usr/local/mysql/data/

mysqladmin shutdown -uroot -p


删除表空间和redo日志

rm -rvf ibdata1      ib_logfile0  ib_logfile1 


删除非mysql自带的数据库

[root@localhost data]# rm -rvf bird

removed `bird/checking.frm'

removed `bird/Customer.frm'

removed `bird/Store_Information.frm'

removed `bird/db.opt'

removed `bird/Sales_Information.frm'

removed `bird/Geography.frm'

removed `bird/savings.frm'

removed directory: `bird'

[root@localhost data]#


在mysql配置文件中添加如下配置:

innodb_file_per_table = 1


重启myql

mysqld_safe --user=mysql &


恢复数据

mysql -uroot -p



查看ibdata1文件,空间已释放。





四、备注:


建议大家最后在mysql初始化的时候,把该参数就加入到mysql配置文件中。



5.一般情况下(ubuntu下默认安装路径为)

有时候在Linux下使用命令安装完应用程序后,我们需要进行必要的配置,可是却找不到该文件,这里对默认安装路径进行说明(仅作为参考,如下目录部分正确,这里只使用了mysql,apache2欢迎给出最新结果):

----------------------------------我是分割线---------------------------------------

apache:
如果apt-get命令安装
apache配置文件:/etc/apache2/httpd.conf
apache模块路径:/usr/sbin/apachectl
web目录:/var/www/
如果采用源代码安装,一般默认安装在/usr/local/apache2目录下


php:

php的配置文件:/etc/php.ini
如果采用源代码安装,一般默认安装在/usr/local/lib目录下
php配置文件: /usr/local/lib/php.ini
或/usr/local/php/etc/php.ini


mysql:
如果apt-get命令安装,安装路径应在/usr/share/mysql目录下
mysqldump文件位置:/usr/bin/mysqldump
mysql配置文件:
/etc/mysql/my.cnf或/usr/share/mysql/my.cnf
mysql数据目录在/var/lib/mysql目录下



参考:http://hi.baidu.com/green_lizard/item/b71523a7ad207384151073a8

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.