Опубликован: 16.04.2007 | Уровень: специалист | Доступ: платный
Лекция 7:

Каталог данных MySQL

Детально о проверке и настройке полномочий на доступ к каталогу данных рассказывается в лекции 11, "Безопасность" . Для защиты каталога данных можно воспользоваться простой командой:

% chmod 700 DATADIR

Запустите эту команду, зарегистрировавшись в качестве пользователя-владельца каталога данных. Не забудьте также зарегистрироваться под именем этого пользователя на сервере, иначе команда не только запретит другим пользователям доступ к каталогу данных (что и требуется), но также закроет базы данных для сервера (чего допустить ни в коем случае нельзя).

Файлы состояния размещаются на верхнем уровне каталога данных вместе с каталогами баз данных. Поэтому иногда пользователи беспокоятся, что имена файлов состояния могут конфликтовать с именами баз данных (например, при выполнении сервером оператора SHOW databases ). Этого бояться не стоит. Информация о событиях и состояниях хранится в файлах, а базы данных записаны в каталогах, что позволяет исполняемым программам легко отличить их, вызвав команду stat(). (Именно таким образом их различает сервер.) Просматривая каталог данных с помощью опции ls -1, пользователь может отличить файлы состояния от каталогов баз данных, определив первую букву данных в режиме: ' - ' или ' d':

% ls –l DATADIR
total 31
drwxrwx-- 1 mysqladm mysqlgrp  1024 May  8 13:22 blgdb
drwxrwx-- 2 mysqladm mysqlgrp  1024 Dec 15 22:34 mysql
-rw-rw--- 1 mysqladm mysqlgrp    64 May  9 20:11 pit-vlper. 001
-rw-rw-r- 1 mysqladm mysqlgrp 24168 May  9 20:11 pit-vlper. err
-rw-rw--- 1 mysqladm mysqlgrp  4376 May  9 20:11 pit-vlper. log
-rw-rw-r- 1 mysqladm mysqlgrp     5 May  9 20:11 pit-vlper. pld
drwxrwx-- 7 mysqladm mysqlgrp   512 Sep 10  1998 sql-bench 
drwxrwx-- 2 mysqladm mysqlgrp   512 May  9 07:34 test

Можно также просто просмотреть список имен, ведь имена всех файлов состояния включают точку, а в именах баз данных она не используется (более того, запрещена).

Более детально о поддержке файлов регистрации и способах работы с ними рассказывалось в лекции 2 "Общее администрирование MySQL" .

Перемещение содержимого каталога данных

В предыдущем разделе описывалась структура каталога данных, создаваемая сервером по умолчанию. Этот каталог содержит все рабочие базы данных и файлы состояния. Иногда возникает необходимость в определении специального места для хранения содержимого каталога данных. В этой части лекции рассказывается, зачем может потребоваться перемещать отдельные части каталога данных (и даже сам каталог), какие его компоненты можно перемещать и как такое перемещение осуществить.

Возможности MySQL позволяют администратору перемещать каталог данных или его внутренние элементы на другое место. Необходимость в этом может быть вызвана следующими причинами.

  • Каталог данных можно разместить на диске большего размера, чем используется в настоящий момент.

  • Если каталог данных располагается на часто используемом диске, перемещение его на другой диск позволит уравнять загрузку среди физических дисков. В этом случае можно разместить файлы баз данных и журналов на отдельном диске или распределить их по нескольким дискам сразу.

  • Каждый из одновременно запущенных серверов можно разместить в своем каталоге данных. Такой подход является одним из способов обойти ограничения на файловые дескрипторы, особенно если эти ограничения нельзя устранить посредством настройки ядра системы.

  • Некоторые операционные системы хранят PID-файлы сервера в отдельном каталоге, например /var/run. Возможно, для большей согласованности работы системы администратор пожелает разместить в этой папке и PID-файлы MySQL.

Методы перемещения

Существует два способа перемещения компонентов каталога данных.

  • Определение опции загрузки сервера с помощью командной строки или в группе [mysqld] конфигурационного файла.

  • Перемещение элементов и создание в исходном каталоге символической связи (symbolic link), указывающей на новое местоположение.

Ни один из приведенных методов не является универсальным для переноса информации. В табл. 7.4 отмечается, какие компоненты каталога данных можно перемещать и какой метод следует для этого использовать. Если применяется первый метод, можно задать опции в глобальном конфигурационном файле /etc/my.cnf ( C:\my.cnf на компьютерах, работающих под управлением ОС Windows). В последних версиях ОС Windows этот файл может располагаться в системной папке ( С:\Windows ).

Таблица 7.4. Обзор методов перемещения
Перемещаемый компонент Применяемый метод перемещения
Целый каталог данных Опция запуска или символическая связь
Каталоги отдельных баз данных Символическая связь
Отдельные таблицы баз данных Символическая связь
PID-файл Опция запуска
Файл общего журнала Опция запуска
Файл журнала обновлений Опция запуска

Для перемещения можно также применить файл my.cnf, расположенный в каталоге данных по умолчанию, однако делать это не рекомендуется. Если ваша цель — переместить весь каталог данных, необходимо оставить этот каталог нетронутым на старой позиции, чтобы разместить в нем конфигурационный файл со ссылкой на "реальный" каталог данных. Это может привести к путанице. Для определения опций сервера лучше воспользоваться конфигурационным файлом /etc/my.cnf.

Александра Каева
Александра Каева
Дмитрий Черепенин
Дмитрий Черепенин

Какого года данный курс?

Анна Елисеева
Анна Елисеева
Россия, Великий Новгород, Ногородский государственный университет имени Ярослава Мудрого, 2003
Эмиль Фернандо
Эмиль Фернандо
Россия