Innodb one file per tablespace

Solution 1:

http://dev.mysql.com/doc/refman/5.0/en/innodb-multiple-tablespaces.html:

The --innodb_file_per_table option affects only table creation, not access to 
existing tables. If you start the server with this option, new tables are 
created using .ibd  files, but you can still access tables that exist in the 
shared tablespace. If you start the server without this option, new tables are 
created in the shared tablespace, but you can still access any tables that were
created using multiple tablespaces.

And yes, a dump and restore is required to move existing tables into their own files.

Solution 2:

I agree with @faker's answer's and comments (+1 for his answer), but there is still one major thing to do:

Before you shutdown mysql, you need to run SET GLOBAL innodb_fast_shutdown = 0;. Why?

This will completely purge all transactional information left over in ib_logfile0 and ib_logfile1. The shutdown time is longer, but nothing in terms of transactional data that is uncommitted with linger. Thus, there will be no data lost doing this process.

Here is my post in StackOverflow how to do it : https://stackoverflow.com/a/4056261/491757