# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • 5 Оптимизация в MySQL
    • 5.6 Вопросы, относящиеся к диску
      • 5.6.1 Использование символических ссылок
        • 5.6.1.1 Использование символических ссылок для баз данных
        • 5.6.1.2 Использование символических ссылок для таблиц

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

5.6.1.2 Использование символических ссылок для таблиц

Не следует использовать символические ссылки для таблиц в версиях до MySQL 4.0, где при работе с ними требуется особая тщательность. Проблема заключается в том, что, если запускаются команды ALTER TABLE, REPAIR TABLE или 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 не признают символические ссылки.

User Comments

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.