Spec-Zone.ru › MySQL 8.4

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.20, «Оператор CREATE TABLE». В качестве альтернативы, если mysqld не запущен, символические ссылки можно создать вручную с помощью ln -s из командной строки.

    Примечание

    Путь, используемый с параметрами DATA DIRECTORY и/или INDEX DIRECTORY, не должен включать каталог MySQL data. (Ошибка #32167)

  • myisamchk не заменяет символическую ссылку на файл данных или файл индексов. Он работает непосредственно с файлом, на который указывает символическая ссылка. Все временные файлы создаются в каталоге, где расположен файл данных или индексов. То же самое относится к операторам ALTER TABLE, OPTIMIZE TABLE и REPAIR TABLE.

  • Примечание

    При удалении таблицы, использующей символические ссылки, удаляются как сама символическая ссылка, так и файл, на который она указывает. Это очень веская причина, почему не следует запускать mysqld от пользователя операционной системы или разрешать пользователям операционной системы доступ на запись в каталоги базы данных 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/symbolic-links-to-tables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API