mysql ibdata1文件过大的解决方案

在MySQL 5.6.6版本以前,MySQL默认会把所有的innodb的表都放在同一个文件中(ibdata1),当该文件过大的时候,MySQL容易出错,维护性能差。

但那些在修改之前已经创建了innodb的表怎么办?
一种办法是用mysqldump备份所有数据库后重建所有数据库,步骤如下

  1. mysqldump -u -p --all-databases > backup.sql导出所有数据
  2. 删除所有数据库 drop database database_N
  3. 停止MySQL服务service mysql stop如果是Mariadb就是service mariadb stop
  4. 删除文件ibdata1, ib_logfile0, ib_logfile1
  5. 修改MySQL配置文件/etc/my.cnf,增加或修改如下:
    [mysqld]
    innodb_file_per_table=1
  6. 重启MySQL服务service mysql start如果是Mariadb就是service mariadb start
  7. 导入备份数据mysql -u -p < backup.sql

你可能感兴趣的:(mysql ibdata1文件过大的解决方案)