Are you using the innodb_file_per_table option?
The innodb space will always grow, because it doesn't clean / re-use free-space areas within the innodb files very well (if at all).
Now Mysql has a the option to 'optimize tables' which, among other things, shrinks the innodb files (but only if you are using the innodb_file_per_table). It will not shrink the default 1/big innodb file.
PS
Keep in mind that you can't just 'turn on innodb_file_per_table'. You need to dump everything, delete all mysql files, enable the option and restore the dumps.
The innodb space will always grow, because it doesn't clean / re-use free-space areas within the innodb files very well (if at all).
Now Mysql has a the option to 'optimize tables' which, among other things, shrinks the innodb files (but only if you are using the innodb_file_per_table). It will not shrink the default 1/big innodb file.
PS
Keep in mind that you can't just 'turn on innodb_file_per_table'. You need to dump everything, delete all mysql files, enable the option and restore the dumps.



Comment