Назад | Перейти на главную страницу

Храните каждую базу данных в другом каталоге

Есть ли способ хранить каждую базу данных mysql в отдельном каталоге? Я мог бы символически связать каталоги с / var / lib / mysql для каждой базы данных, но мне было интересно, есть ли встроенный способ сделать это.

Спасибо

Боюсь, что нет встроенного способа сделать это, mysql просто определяет каталог данных, а затем все базы данных должны находиться в своих каталогах.

Если вы хотите сделать это, просто убедитесь, что пользователь, в котором запущен mysql, имеет доступ к последним каталогам, я думаю, что программные ссылки должны быть в порядке.

Удивительно, но единственная встроенная символическая ссылка отдельных таблиц MyISAM
выполняется командой CREATE TABLE следующим образом:

CREATE TABLE
(
...
) ENGINE=MyISAM
DATA_DIRECTORY='absolute path of data folder'
INDEX_DIRECTORY='absolute path of index folder';

Перейти к http://dev.mysql.com/doc/refman/5.0/en/create-table.html и найдите параметры DATA_DIRECTORY и INDEX_DIRECTORY.

На исходном сервере остается только файл .frm.

Кстати, эти параметры не работают в версии MySQL для Windows. Эти параметры недоступны для InnoDB.

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

При включении нескольких табличных пространств InnoDB сохраняет каждую вновь созданную таблицу в собственном файле tbl_name.ibd в соответствующем каталоге базы данных