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