Для создания динамических веб-сайтов разработчики часто создают свой собственный веб-сервер, устанавливая все необходимое программное обеспечение на рабочем компьютере. Кончено, иметь для сервера компьютер под управлением Linux — наилучшее решение, но в большинстве случаев приходится использовать Windows. Из всех необходимых для работы сайта приложений наиболее сложным и большим является сервер баз данных MySQL. Начинающим пользователям он может показаться сложным в освоении (только процесс установки простой, в дистрибутиве есть графический инсталлятор). Хотя инсталляция по умолчанию гарантирует работу сервера, для достижения наибольшей производительности или для выполнения административных действий необходимо ориентироваться в назначении всех каталогов и файлов приложения.
Это будет полезно также, если надо экономить место — только что установленный сервер MySQL занимает 51 Мб места, но, к примеру, максимально облегченный и настроенный на наибольшее быстродействие он вполне может поместиться в 5 с небольшим мегабайт. Самый лучший пример — система «Денвер» (/redir.php?url=web.dklab.ru%3C%2Fa%3E%29%2C где в объем архива 2,5 Мб уместились все необходимые приложения — Apache, MySQL, PHP и Perl.
Сейчас мы познакомимся с описанием структуры каталогов и назначением различных файлов сервера MySQL. В различных версиях каталоги различаются, поэтому мы будем рассматривать промежуточную версию — 4.1, в более ранних версиях просто отсутствуют некоторые каталоги, а версии выше 4.1 — еще в стадии разработки, и их не советуют применять для реальной работы. Мы будем рассматривать версию для платформы Windows, так как она наиболее часто применяется для разработки и тестирования сайтов, на серверах хостинговых площадок, скорее всего, база данных уже стоит и настроена на максимальную производительность.
Когда около описания каталога или файла будет упоминаться, что он необязателен, это значит, что его можно удалить для сокращения объема установки без нарушения производительности. Но удаление отдельных каталогов и файлов может повлечь за собой удаление какой-либо функциональности из пакета, поэтому их надо удалять только в том случае, если вы точно знаете, что вам может понадобиться, а что нет.
MySQL устанавливается в один каталог — обычно это "с:\mysql', — но его можно произвольно изменить. Установка является самодостаточной в том смысле, что не копирует куда-либо еще файлы, помимо своего каталога, и ее можно просто скопировать в другое место — сервер сохранит свою работоспособность. Только my.ini копируется в общесистемный каталог " Каталог «bench» содержит набор скриптов и данных для выполнения теста производительности сервера и сравнения его с другими серверами. Тест универсальный и работает с различными СУБД. Тестируется выполнение различных операторов SQL — INSERT, UPDATE, CREATE, SELECT и других, тестовые данные хранятся в подкаталоге "bench\Data'. Для запуска теста нужно иметь установленный интерпретатор языка Perl. Более подробно о тестах и методе их запуска можно прочитать в файле README в каталоге «bench». Этот каталог и все подкаталоги не являются необходимыми для работы, они используются при разработке или сравнительных тестах, и их можно удалить.
Каталог «bin» — один из самых важных в дистрибутиве, в нем хранятся исполняемые модули самого сервера, клиентской части, а также утилиты и другие файлы. Рассмотрим назначение всех файлов.
Сервер mysql-max-nt самый функциональный и производительныйНабор из пяти файлов, начинающихся с mysqld* — это, собственно, и есть сам сервер MySQL, который принимает SQL-запросы, обрабатывает их и возвращает результат. В дистрибутив входят несколько версий сервера — mysqld, mysqld-max-nt, mysqld-max, mysql-nt и mysqld-opt, которые различаются по производительности. Для Windows 95/ME используется версия mysqld, для систем на базе Windows NT/2000/ХР/2003 рекомендуется использовать сервера с приставкой nt в названии — так можно задействовать эффективные механизмы межпроцессного взаимодействия, реализованные в этих операционных средах. Кроме того, от выбора сервера зависят и типы баз и таблиц, с которыми можно работать. К примеру, таблицы InnoDB (с поддержкой транзакций) работают только с сервером mysqld-opt, а таблицы BDB (BerkeleyDB, поддержка транзакций) с сервером mysqld-max. Если вам нужна поддержка транзакций, и сервер работает на Windows NТ или выше, универсальным решением будет mysqld-max-nt — так вы получите поддержку всех возможностей и максимальную производительность. Из этих файлов обязательным является какой-то один, поэтому после тестирования вы можете удалить остальные файлы.
WinMySQLAdmin — это простой графический менеджер базы данных, в поставку включен также справочный файл. Он удобен тем, что позволяет просмотреть текущие настройки и окружение сервера, а также выбирать тип сервера и вносить изменения в файл конфигурации my.ini. Если вы используете утилиту MySQL Administrator, эти файлы можно также удалить. MySQLManager — еще одна графическая утилита, предназначенная для работы с запросами к базам и таблицам. Необязательный файл.
Файл mysql.exe (заметьте, без буквы d в конце) — это консольный клиент для работы с сервером, который позволяет, вводя команды в консоли, удаленно работать с базами и таблицами, а также администрировать сервер. Впрочем, если вы работаете с удаленного компьютера, этот файл на сервере можно удалить.
Библиотека libmySQL.dll предназначена для обеспечения программного интерфейса (API) для различных программ, работающих напрямую с сервером MySQL. Для обеспечения работы ее желательно оставить, а еще лучше — скопировать в общедоступное место, к примеру, в каталог "WINNT\system32\".
Утилита mysqlshutdown.exe, судя по названию, должна отвечать за корректную остановку сервера, но в ней нет никаких меню или команд, только пустое окно. Спокойно можно удалить. Далее идет набор утилит, функциональность которых дублирует некоторые команды SQL: mysqlimport — аналог команды LOAD DATA — предназначена для загрузки в таблицы данных из файлов, а mysqlshow — аналог команды SHOW для просмотра информации о базах, таблицах и их свойствах. Также в дистрибутиве есть несколько служебных утилит, которые проверяют и устраняют ошибки в файлах таблиц (myisamchk.exe, mysqlcheck.exe), конвертируют файлы таблиц в специальный формат, доступных только для чтения, но занимающий меньше дискового пространства (pack_isam.exe), помогают администрировать сервер (mysqladmin.exe), создают дамп таблиц и целых баз для переноса или резервного копирования (mysqldump.exe) и работают с логами сервера (mysqlbinlog.exe, myisamlog.exe). Эти файлы не являются необходимыми для работы сервера, их можно удалить, достаточно оставить разве что mysqldump.exe и mysqlimport.exe для быстрой загрузки информации в базу и создания резервной копии. Эти утилиты работают из любой директории, поэтому их можно исключить из инсталляции.
В каталоге data хранятся базыи таблицы. База mysql — системнаяКаталог «data» хранит базы и таблицы, с которыми работает MySQL. Необходимой для работы сервера является лишь одна база — «mysql». Каждый подкаталог — это отдельная база (имя каталога = имя базы данных), а файлы содержат информацию о структуре и данных в таблицах. Файлы *.FRM хранят структуру таблиц, *.MYD — данные таблиц, *.MYI — индексы таблиц. Имена файлов идентичны именам таблиц. Каталог «data» и подкаталог «mysql» со всеми файлами являются обязательными для работы, но при необходимости их можно перенести в любое другое место файловой системы, указав новое месторасположение опцией --datadir=/путь_к_каталогу_data. В каталоге "data\mysql\" обязательны файлы user.*, db.*, host.*, tables_priv.*, columns_priv.*, а func.* — только для версий сервера, поддерживающей определяемые пользователем процедуры. Звездочка означает, что файлов с такими именами должно бить три — с расширениями .FRM, .MYD и .MYI. Каталог «ibdata» создается, только если вы используете таблицы с поддержкой транзакций (InnoDB), и в нем хранятся журналы транзакций. Не удаляйте его, он создается автоматически, когда включается поддержка транзакций.
Каталог «Docs» содержит документацию в файлах manual.html (в формате HTML), manual.txt (в текстовом формате) и оглавление в файле manual_toc.html (так как сами файлы manual довольно большие), файл INSTALL-BINARY содержит руководство по установке, а также подкаталог «Flags» с изображениями флагов различных стран, языки которых (кодовые таблицы) поддерживаются сервером. Этот каталог можно удалить, на работу сервера он не влияет.
Каталог «Embedded» должен содержать сборку сервера, предназначенную для встраивания в другие программы, в доступных дистрибутивах он пуст (содержит несколько пустых подкаталогов), и его можно удалить.
Каталог «examples» содержит примеры программ, работающих с сервером. В подкаталоге «libmysqltest» содержится пример приложения на языке С, которое тестирует производительность сервера. Также для разработчиков предназначен и каталог «include», в котором содержатся заголовочные файлы. Можно удалять все эти каталоги, если вы не программируете на С.
Каталог «lib» содержит сборки необходимых библиотек для функционирования сервера и клиентских программ, а также утилит сторонних разработчиков. Подкаталог «debug» содержит отладочную версию библиотек, а «opt» — стабильную сборку. Этот каталог также больше ориентирован на разработчиков, так как другие программы используют версию библиотеки libmySQL.dll, размещенную в каталоге «bin». Если вы не разработчик, каталог можно удалить.
Каталог «scripts» содержит скрипты командной оболочки UNIX для выполнения разных административных действий — запуска сервера, остановки, инсталляции и других. Поскольку мы работаем с Windows-версией сервера MySQL, этот каталог также можно удалить.
И последний каталог — «share». В нем содержится целый набор подкаталогов, название каждого из них — название языка, который поддерживает сервер. В каждом подкаталоге находятся два файла: errmsg.sys и errmsg.txt, которые содержат описание сообщений об ошибках, выводимых сервером, на определенном языке. Например, в каталоге "share\russian\" содержатся сообщения об ошибках на русском, а в каталоге "share\english\" — на английском, который используется по умолчанию. Если вы хотите изменить язык выводимых сообщений, используйте команду --language=язык, где «язык» — это название языка, совпадающее с названием подкаталога. Например, для переключения на русский надо ввести --language=russian, и должен существовать каталог "share\russian\". Можно оставить два каталога — «english» и «russian», — а остальные удалить. Еще обратите внимание на подкаталог «charsets», в котором хранятся настройки используемых кодировок (в формате .xml или .conf в предыдущих версиях). Эти настройки влияют на сортировку полей в таблицах и поддерживаемые языки в полях типа VARCHAR и CHAR. Этот каталог является обязательным, не удаляйте его.
В только что установленном сервере присутствует также тестовая база test. Ее можно удалить.
Вот и все. Если первоначальный объем инсталляции равен 51 Мб, то после удаления всех ненужных или редко используемых файлов он равен всего лишь 10 Мб, а при необходимости — и еще меньше.
Ссылки по теме
Статья получена: hostinfo.ru