В моей установке MySQL у меня есть одна база данных InnoDB, которая, как я знаю, будет очень большой, поэтому я решил переместить ее на свой собственный диск. Я надеялся сделать это, переместив файлы на другой диск, а затем создав символическую ссылку, но я столкнулся с ошибками!
Это то, что я сделал:
1) В my.cnf я установил
[туздЫ] innodb_file_per_table
(Это работает, у меня есть один .ibd per.frm в папке базы данных.)
2) Я проверил, соответствуют ли симлинки с помощью SHOW VARIABLES LIKE "have_symlink";
(Я знаю, что в документации говорится:
Символы полностью поддерживаются только для Таблицы MyISAM. Для файлов, используемых таблицы для других систем хранения, вы могут возникнуть странные проблемы, если вы попытаетесь используйте символические ссылки.
Но мне нужны внешние ключи...)
3) Я переместил папку базы данных и создал символическую ссылку.
4) Перезагруженный mysql и попытался:
mysql> USE db_name
Database changed
mysql> SHOW TABLES;
ERROR 1018 (HY000): Can't read dir of './db_name/' (errno: 13)
mysql> exit
[email protected]# perror 13
OS error code 13: Permission denied
Символьная ссылка (как ожидалось) lrwxrwxrwx mysql mysql db_name -> /path-to/db_name/
Разрешения папки базы данных drwx------ mysql mysql
все права доступа к файлам: -rw-rw---- mysql mysql
Я использую Ubuntu 10.04 Server с MySQL 5.1.41 (по умолчанию от apt).
Успешно ли вы сделали это?