В моей установке MySQL у меня есть одна база данных InnoDb, которую я знаю, будет очень большим, поэтому я решил переместить его на свой диск. Я надеялся сделать это, переместив файлы на другой диск, а затем создаете SymLink, но я столкнулся с ошибками!
Это то, что я сделал:
1) в My.cnf я настроил
[mysqld] innodb_file_per_table
(Это работает, у меня есть один .ibd per .frm в папке базы данных.)
2) Я проверил, в порядке ли символические ссылки с SHOW VARIABLES LIKE "have_symlink";
(Я знаю, что документация говорит:
SymLinks полностью поддерживаются только для таблиц MyIsam. Для файлов, используемых таблицами для других двигателей хранения, вы можете получить странные проблемы, если вы пытаетесь использовать символические ссылки.
Но мне нужны иностранные ключи ...)
3) Я переместил папку базы данных и создал SymLink.
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
user@comp# perror 13
OS error code 13: Permission denied
SymLink (как и ожидалось) lrwxrwxrwx mysql mysql db_name -> /path-to/db_name/
Разрешения папки базы данных drwx------ mysql mysql
Все разрешения файлов -rw-rw---- mysql mysql
Я использую сервер Ubuntu 10.04 с MySQL 5.1.41 (по умолчанию от APT).
Кто-нибудь из вас сделал это успешно?
/database
, ваша существующая база данных/database/existing_database
и ваша новая база данных/database/new_database
, просто смонтируйте/database/new_database
на новый диск - person ajreal   schedule 15.11.2010