Взято с сайта с документацией
InnoDB
is not aware of the file system maximum
file size, so be cautious on file systems where the maximum file
size is a small value such as 2GB. To specify a maximum size for
an auto-extending data file, use the
max
attribute following the
autoextend
attribute.
The following configuration permits
ibdata1
to grow up to a limit of 500MB:
[mysqld]
innodb_data_file_path=ibdata1:10M:autoextend:max:500M
InnoDB
creates tablespace files in the MySQL
data directory by default. To specify a location explicitly, use
the
innodb_data_home_dir
option.
For example, to use two files named
ibdata1
and
ibdata2
but create them in the
/ibdata
directory, configure
InnoDB
like this:
[mysqld]
innodb_data_home_dir = /ibdata
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
ibdata1
Этот файл используется движком InnoDB для хранения таблиц, при этом все таблицы хранятся
в одном файле, что очень неудобно. Для активации разделения баз данных по разным файлам
используется следующая опция в my.cnf
(добавлять в блок [mysqld]):
innodb_file_per_table
После этого необходим рестарт СУБД:
/etc/init.d/mysqld restart
Все, теперь все вновь создаваемые InnoDB таблицы будут создаваться в
отдельных файлах внутри папок с именами баз данных (с расширением .ibd,
причем и индексы и данные лежат вместе).
Уменьшить ibdata1
Сделать дамп базы, удалить _все_ файлы InnoDB, запустить сервер и восстановить базу
из дампа. Не забудьте перед запуском сервера поставить innodb_file_per_table - это сэкономит
время в будущем (если, конечно, у Вас нету нескольких тысяч таблиц - тогда может замедлить
сервер).