教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 解决MySQL数据库目录ibdata1文件占用空间大问题

解决MySQL数据库目录ibdata1文件占用空间大问题

发布时间:2017-12-11   编辑:jiaochengji.com
教程集为您提供解决MySQL数据库目录ibdata1文件占用空间大问题等资源,欢迎您收藏本站,我们将为您提供最新的解决MySQL数据库目录ibdata1文件占用空间大问题资源
如果你使用的是否windows系统会发现mysql中的data目录地看到有一个ibdata1文件,这个文件会非常的大了,那么要如何来处理此问题,我们来看看。

经常使用MySQL并启用了InnoDB引擎的时候,会发现数据库相应目录下,ibdata1这个文件会越来越大,并且即便删除表中数据也无法减小其空间占用。所以,接下来的配置就是为了解决这个问题。

1、先停止所有访问数据库的服务;
2、导出数据文件;

mysqldump -u root -p dbname| gzip > dbname.sql.gz
该命令会将数据库压缩导出,会慢点,如果你数据库并不大的话,可以不用压缩,那么就是:

mysqldump -u root -p dbname > dbname.sql
3、修改MySQL配置;

vi /etc/mysql/my.cnf
在[mysqld]下添加一行:

innodb_file_per_table
并删除数据库所在路径中的ibdata1及两个log文件。
然后重新启动数据库:

service mysql restart
接下来登进数据库,使用以下命令查看配置是否生效:

show variables like '%per_table%';
如果输出结果为ON,那么配置已经修改成功;
4、导入原来的数据
登入数据库后执行:

source dbname.sql
或者不登录mysql执行:

mysqldump -uroot -p dbname < dbname.sql;
导入完成后即可发现,ibdata1这个文件已经不怎么增长了,所有数据表的数据都会存在他自己目录下的同名db文件中,这时候清理表数据后,空间占用也会相应的减小。

Linux修改mysql数据文件路径

1.设置新的存放路径


mkdir -p /data/mysql
2.复制原有数据

cp -R /var/lib/mysql/* /data/mysql
3.修改权限

chown -R mysql:mysql /data/mysql
4.修改配置文件

vi /etc/mysql/my.cnf
datadir = /data/mysql
5.修改启动文件

vi /etc/apparmor.d/usr.sbin.mysqld
#把

/var/lib/mysql r,
/var/lib/mysql/** rwk,
#改成

/data/mysql r,
/data/mysql/** rwk,
6.重启服务
重启apparmor

/etc/init.d/apparmor restart
/etc/init.d/mysql restart
至此修改完成。

附录:

导出数据库并压缩:

mysqldump -u root -p mysql | gzip > mysql.sql.gz
解压:

gunzip mysql.sql.gz
导入:

source mysql.sql

mysqldump -uroot -p dbname < dbname.sql;
如果无法启动,查看LOG:

tail -n 40 /var/log/syslog

您可能感兴趣的文章:
解决MySQL数据库目录ibdata1文件占用空间大问题
MySQL单独存放表空间Innodb_file_per_table参数详解
MySQL常见错误代码解析
mysql innodb优化配置方法分享
mysql无法启动出现1067错误问题(图文)
mysql innodb数据库引擎解析
MySQL性能调优和使用新手必读教程
解决phpMyAdmin导入数据文件最大限制2MB问题
MySQL事务数据库(InnoDB类型)的安装方法
phpmyadmin导入大于2M的SQL文件

[关闭]
~ ~