Ressources "bdata1 innodb_file_per_table"

ibdata1 grows exponentially when innodb_file_per_table is configured


  1. Dump All DB's
  2. Stop MySQL
  3. Add "innodb_file_per_table"
  4. Delete all ib* file
  5. Start MySQL
  6. Import All DB's

Can I safely switch to Innodb file-per-table and delete ibdata1?

According to the documentation : Using Per-Table Tablespaces : Enabling and Disabling Multiple Tablespaces

With multiple tablespaces enabled, InnoDB stores each newly created table in its own tbl_name.ibd file in the appropriate database directory. Unlike the MyISAM storage engine, with its separate tbl_name.MYD and tbl_name.MYI files for indexes and data, InnoDB stores the data and the indexes together in a single .ibd file. The tbl_name.frm file is still created as usual.

If you remove the innodb_file_per_table line from my.cnf and restart the server, InnoDB creates any new tables inside the shared tablespace files.

You can always access both tables in the system tablespace and tables in their own tablespaces, regardless of the file-per-table setting.

The answer to your question: NO, you can't delete ibdata1, ib_logfile0 or ib_logfile1, because just enabling the option does NOT move your existing data.