10.12.2.2 Использование символических ссылок для таблиц MyISAM в Unix
Поддержка символических ссылок, описанная здесь, вместе с параметром --symbolic-links, который его контролирует, устарела; ожидайте её удаления в будущей версии MySQL. Кроме того, по умолчанию этот параметр отключен.
Символические ссылки полностью поддерживаются только для таблиц MyISAM. Для файлов, используемых таблицами других движков хранения, могут возникнуть странные проблемы при попытке использования символических ссылок. Для таблиц InnoDB используйте альтернативный метод, описанный в разделе 17.6.1.2 «Создание таблиц внешним образом».
Не используйте символические ссылки для таблиц на системах, где вызов realpath() не полностью функционален. (Linux и Solaris поддерживают realpath()). Чтобы определить, поддерживает ли ваша система символические ссылки, проверьте значение системной переменной have_symlink с помощью следующего оператора:
SHOW VARIABLES LIKE 'have_symlink';
Обработка символических ссылок для таблиц MyISAM выполняется следующим образом:
В каталоге данных всегда есть файл данных (
.MYD) и файл индекса (.MYI). Файл данных и файл индекса могут быть перемещены в другое место и заменены в каталоге данных символическими ссылками.Вы можете создать символические ссылки на файл данных и файл индекса независимо в разные каталоги.
-
Чтобы настроить работающий сервер MySQL на создание символических ссылок, используйте параметры
DATA DIRECTORYиINDEX DIRECTORYдляCREATE TABLE. См. раздел 15.1.21 «Команда CREATE TABLE». В качестве альтернативы, если mysqld не запущен, символические ссылки можно создать вручную с помощью ln -s из командной строки.ПримечаниеПуть, используемый с параметрами
DATA DIRECTORYи/илиINDEX DIRECTORY, не может включать каталог MySQLdata. (Ошибка #32167) myisamchk не заменяет символическую ссылку файлом данных или индексным файлом. Он работает непосредственно с файлом, на который указывает символическая ссылка. Любые временные файлы создаются в каталоге, где находится файл данных или индексный файл. То же самое справедливо для команд
ALTER TABLE,OPTIMIZE TABLEиREPAIR TABLE.- Примечание
При удалении таблицы, использующей символические ссылки, удаляются как сама символическая ссылка, так и файл, на который она указывает. Это очень веская причина не запускать mysqld как пользователя операционной системы
rootили разрешать операционным системам пользователей иметь права записи в каталоги базы данных MySQL. Если вы переименовываете таблицу с помощью
ALTER TABLE ... RENAMEилиRENAME TABLEи не перемещаете таблицу в другую базу данных, символические ссылки в каталоге базы данных переименовываются в новые имена, а файлы данных и индексов переименовываются соответствующим образом.Если вы используете
ALTER TABLE ... RENAMEилиRENAME TABLEдля перемещения таблицы в другую базу данных, таблица перемещается в каталог другой базы данных. Если имя таблицы изменилось, символические ссылки в новом каталоге базы данных переименовываются в новые имена, а файлы данных и индексов переименовываются соответствующим образом.Если вы не используете символические ссылки, запустите mysqld с параметром
--skip-symbolic-links, чтобы гарантировать, что никто не сможет использовать mysqld для удаления или переименования файла за пределами каталога данных.
Эти операции с символическими ссылками на таблицы не поддерживаются:
ALTER TABLEигнорирует параметры таблицыDATA DIRECTORYиINDEX DIRECTORY.
© 2025 Oracle
Licensed under the GPLv2 License.