Buy this Reference Manual in softcover from Barnes & Noble!
Не следует использовать символические ссылки для таблиц в версиях до MySQL 4.0, где при работе с ними требуется особая тщательность. Проблема заключается в том, что, если запускаются команды ALTER TABLE
, REPAIR TABL
E или OPTIMIZE TABLE
на таблице, связанной символической ссылкой, то символические ссылки будут удалены и заменены исходными файлами. Это происходит потому, что любая вышеназванная команда работает путем создания временного файла в каталоге базы данных и по завершении команды происходит замещение исходного файла временным.
Не следует связывать символическими ссылками таблицы в системах, где вызов функции realpath()
работает не полностью (по крайней мере, realpath()
поддерживают Linux и Solaris).
В MySQL 4.0 символические ссылки полностью поддерживаются только для таблиц MyISAM
. Для других типов таблиц при выполнении какой-либо из вышеупомянутых команд могут возникать непонятные проблемы.
Обработка символических ссылок в MySQL 4.0 происходит следующим образом (это в основном относится только к таблицам MyISAM
).
mysqld
) или с помощью команды INDEX/DATA DIRECTORY="path-to-dir"
в CREATE TABLE
(see section 6.5.3 Синтаксис оператора CREATE TABLE
).myisamchk
не замещает символическую ссылку на индекс/файл, а работает напрямую с файлами, на которые указывает символическая ссылка. Все временные файлы будут создаваться в том же каталоге, где находится файл данных/индексов.mysqld
в качестве суперпользователя (root
) и не позволять другим иметь доступ к записи в каталоги баз данных MySQL.ALTER TABLE RENAME
, а база данных не изменяется, то данная символическая ссылка в каталоге базы данных будет переименована и файл данных/индексов соответственно будет переименован.ALTER TABLE RENAME
используется для переноса таблицы в другую базу данных, то эта таблица будет перенесена в другой каталог базы данных, а старые символические ссылки и файлы, на которые они указывают, будут удалены.--skip-symlink
в mysqld
для уверенности, что никто не сможет удалить или переименовать файл вне каталога данных этого потока.Возможности, которые пока еще не поддерживаются:
ALTER TABLE
игнорирует все опции INDEX/DATA DIRECTORY="path"
.CREATE TABLE
не сообщает, что данная таблица имеет символические ссылки.mysqldump
не включает в вывод информацию о символических ссылках.BACKUP TABLE
и RESTORE TABLE
не признают символические ссылки.Add your own comment.