|
Программирование >> Программный интерфейс приложений
На компьютере, работающем под управлением ОС Windows, результаты ввода этой же команды будут выглядеть следующим образом. % mysqladmin variables +-----------------------+------------------------+ 1 Variable name ] Value i +-----------------------+------------------------+ 1 back log 5 I 1 connect timeout 5 I i basedir c:\mysql\ I [ datadir ) c:\mysql\data\ Если на компьютере запущено несколько серверов, каждый из них использует свой порт TCP/IP и разъем. Чтобы получить информацию о каталоге данных от каждого сервера, достаточно подключиться с помощью опций --port и --socket к соответствующему порту и разъему. % mysqladmin --port=port num variables % mysqladmin -sooket=/path/to/sooJcet variables Команду mysqladmin можно запускать на любом компьютере, который подключен к серверу. Для подключения к серверу с удаленного компьютера применяется опция --host=host name. % mysqladmin --host=host name variables С компьютера, работающего под ОС Windows, можно подключиться к работающему через именованный канал серверу Windows NT с помощью опции -pipe, активизирующей соединение по именованному каналу, и опции -socket=pipe name, определяющей имя канала. С:\> mysqladmin -pipe -sooket=pipe name variables Воспользоваться командой ps для вьгаода командной строки исполняемого процесса mysql. Попробуйте одну из указанных ниже команд (в зависимости от версии ps, поддерживаемой системой) и поищите переменную --datadir в выводимых результатах. % ps axww I grep mysql ps BSD-UNIX % ps -ef ( grep mysql ps системы System V Команда ps особенно полезна при запуске на одаом компьютере нескольких серверов, поскольку позволяет узнать месторасположение сразу всех каталогов данньк. Недостаток этого метода заключается в том, что команду ps обязательно нужно запускать на главном компьютере. Кроме того, она будет бесполезна, если переменная -datadir не описана явным образом в командной строке mysql. Если MySQL инсталлировалась из исходной дистрибуции, месторасположение каталога данных можно получить из информации о конфигурации. Так, например, месторасположение каталога указывается в элементе верхнего уровня Makefile. Однако будьте осторожны, поскольку позиция каталога является в Makefile значением переменной localstatedir , а не datadir, как ожидают многие. Кроме того, если дистрибуция размещается на смонтированной сетевой файловой системе NFS и используется для установки MySQL на несколько компьютеров, в информации конфигурации отражаются данные только для компьютера, на котором система устанавливалась последней. Вполне возможно, что им окажется не тот компьютер, для которого необходимы данные. Если все предыдущие методы вам не подходят, можно воспользоваться командой find для поиска файлов базы данных. Приведенная ниже команда ищет все файлы . f rm (описания), являющиеся частью инсталляций MySQL: % find / -name *.frm -print Bo всех примерах этой главы в качестве каталога данных MySQL определен каталог DATADIR. Вполне возможно, что на других компьютерах для этих целей может применяться другой каталог. Структура каталога данных Каталог данных MySQL содержит все управляемые сервером базы данных и таблицы. Они организованы в структуру простого дерева, что позволяет, в свою очередь, воспользоваться преимуществами иерархической структуры файловых систем ОС UNIX и Windows. Каждой базе данных соответствует подкаталог, расположенный внутри каталога данных. Таблицам базы данных соответствуют файлы, размещенные внутри каталога базы данных. Каталог данных содержит также создаваемые сервером файлы состояния, такие, например, как журналы. Они обеспечивают важную информацию о функционировании сервера и просто незаменимы для администратора, особенно когда сервер начинает сбоить и нужно найти источник проблемы. Если неправильно сформированный запрос приводит к сбою в работе сервера, с помощью журналов можно вычислить виновника . Как обеспечивается доступ к данным сервера MySQL Каждый элемент внутри каталога данных находится под управлением MySQL-сервера mysqid. Клиентские программы никогда не обращаются к данным напрямую. Точку взаимодействия, с помощью которой осуществляется доступ к базам данным, обеспечивает сервер, работающий в качестве промежуточного звена л ежду клиентскими программами и данными (рис. 10.1). Клиент 1 Клиент 2 Клиент 3 Доменный разьем UNIX (UNIX) Порт TCP/IP (UNIX, NT) Именованный канал (NT) Отевой интерфейс Сервер MySQL Каталог данных
База данных 2 Таблица 1 Таблица 2 Таблица 3 Таблица! База данных п Таблица 2 Таблица3 Рис. 10.1. Управление доступом к каталогу данных сервера MySQL В процессе запуска сервер открывает регистрационные файлы (если таковые запрашиваются) и предоставляет сетевой интерфейс к каталогу данных, прослушивая сетевые соединения. Для получения доступа к данным клиентская профамма устанавливает соединение с сервером и посылает SQL-запрос на выполнение определенных операций (например, создание таблицы, извлечение или обновление записей). Сервер выполняет все операции и результаты отправляет обратно клиенту. Сервер представляет собой мультипотоковый механизм, поэтому может обслуживать несколько клиентских соединений одновременно. Однако, так как две и более операции обновления не могут выполняться в один момент, на практике происходит разделение запросов по наборам, чтобы исключить одновременную попытку двух клиентов изменить одну запись. В обычных условиях использование сервера как единственной точки доступа к базе данных обеспечивает защиту от всякого рода недоразумений, связанных с одновременным доступом нескольких процессов к таблицам базы данных. Админисфаторы, однако, должны знать, что в некоторых случаях серверы не обладают эксклюзивным конфолем над каталогом данных. ш В одном каталоге данных запущено несколько серверов. Как правило, для управления всеми базами данных используется один сервер, хотя можно запустить сразу несколько серверов. Если это делается для обеспечения доступа к нескольким отдельным катало-. гам данных, то проблем с взаимодействием различных серверов не
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |