mysql数据库,用InnoDB引擎。新建了一个测试数据库,往里面插入了大量的数据,导致服务器磁盘空间都用满了。现在删除了测试数据库里面的数据,但是磁盘空间没有变大。网上查了下,说是InnoDB的数据文件只增不减。如果想要减小,需要先转储(dump)所有的数据表,再重新建立一个新的数据库,并将数据导入新的数据库中。想问下有没有详细点的过程,或者其他别的办法?

解决方案 »

  1.   

    是的
    备份innodb数据后,停止mysql服务,把对应的innodb文件删除,然后修改my.ini(windows下)或my.cnf(linux下)里修改innodb_data_file_path=ibdata1:10M:autoextend红色部分指定文件的初始大小;重新导入刚才恢复的数据即可。
      

  2.   

    innodb 的表空间文件不会自动缩小。如下操作。 - 1. 用mysqldump等工具导出数据
    - 2. 停止 mysqld
    - 3. 删除ibdata*, ib_logfile* 文件
    - 4. 重新启动 mysqld(这时mysqld就会自动创建 idbdata*, ib_logfile* 文件)
    - 5. 将到出来的数据导回去,体积才会减小。