Традиционно, сервер баз данных MySQL был предназначен для установки на серверы и использовался только профессиональными администраторами – они устанавливали его на стороне хостинг-провайдера, а все разработчики получали доступ к базам через интерфейсы своего языка программирования. Конечно, для локальной установки MySQL был доступен всем – но это был всего лишь обычный архив с инсталлятором, вся работа которого заключалась в распаковке файлов в корневую директорию диска С. Настройка же базы данных — операция очень кропотливая и требующая знания всех нюансов сервера, производилась путем ручного редактирования конфигурационных файлов или же при помощи опций командной строки при запуске сервера. Конечно, для профессиональных разработчиков это было обычным явлением и они не чувствовали дискомфорта, к тому же это с лихвой окупалось выдающимися параметрами сервера (скоростью, устойчивостью, простотой). Но сейчас роль MySQL немного изменилась, претендуя на широкое применение в сфере малого бизнеса и корпоративной среде.
Следовало обзавестись удобными инструментами для настройки, тем более что все конкуренты давно уже имеют подобный инструментарий.
Сейчас в арсенале MySQL есть мощный графический менеджер-настройщик MySQL Administrator, который может управлять работой сервера, показывает состояние сервера, анализирует логи и т. д. Но требовалось что-то другое, какое-то решение, чтобы пользователь, впервые попробовавший установить сервер, сразу получил бы готовую систему, причем с максимальным комфортом. Актуально это в первую очередь для платформы win32, так как большинство пользователей избалованы (да и просто привыкли) к красивым интерфейсам установщиков. И такое решение нашлось – специально для платформы Windows доступна версия сервера MySQL Essential. Сам по себе сервер MySQL в этой версии ничем не отличается, основное кроется в «обертке» – инсталляторе. Инсталлятор теперь стандартный для Windows – MSI, а вот дальше... А дальше, после обычной распаковки и установки программы, начинается самое «вкусное». Последним этапом инсталлятор запускает новую утилиту, входящую в дистрибутив, — MySQL Server Instance Config Wizard.
Особенность сборки Essential – утилита Instance ConfigНо давайте по порядку. Скачав с одного из многочисленных зеркал сервера mysql.com инсталляционный пакет (для текущей стабильной версии 4.1 он, скорее всего, имеет название mysql-essential-4.1.12-win32.msi и размер примерно 14 Мб), запускаем его и приступаем к установке. Доступны три режима установки – типичный (Typical), полный (Complate) и выборочный (Custom. Рекомендую все же выбрать Custom и хоть бы ознакомиться с перечнем устанавливаемого ПО – кроме самого сервера туда входят еще и клиентский терминал, служебные утилиты для проверки и администрирования, а также тот самый Instance Config, из-за которого все это и затевалось. Инсталлировать заголовочные файлы и библиотеки, думаю, пока нет надобности, ведь мы будем использовать сервер для веб-разработок.
Кстати, теперь изменился и каталог, куда устанавливаются все программы от MySQL AB. Раньше стандартным каталогом был "c:\mysql", теперь, как и «все нормальные программы», все перенесено в "C:\Program Files\MySQL\". Вы можете параллельно использовать разные версии серверов (например, 4.1 и 5.0 для экспериментов) — инсталлятор корректно все расставит по своим каталогам, все дополнительные утилиты будут установлены в свои каталоги, так что все ваше «серверное хозяйство» будет компактно размещено в одной директории.
После нескольких минут распаковки и копирования файлов сервер будет установлен, но на этом все не заканчивается. Первым шагом после установки будет подключение к аккаунту на Mysql.com – если вы уже зарегистрированы там, просто введите свои данные, если нет – можно тут же создать новую учетную запись. Это займет всего пару минут и даст возможность получать уведомления об обновлении сервера, о подписке на рассылку MySQL Newsletter и о многом другом. После этого шага (который можно и пропустить, он необязателен) вам будет предложено запустить мастер настройки Instance Config Wizard.
Есть два варианта конфигурирования – стандартный и детальный, предназначенный для более опытных пользователей и позволяющий сделать наиболее оптимальные настройки вашего сервера. Далее мы будем использовать именно детальный режим.
Вариант Developer Machine — самый оптимальныйСледующим шагом идет выбор назначения сервера. Это может быть машина разработчика или Developer Machine (то есть сервер используется для отладки и тестирования, а значит, параллельно будут работать другие программы и, возможно, даже разные версии серверов, поэтому требования к ресурсам минимальные). Вариант Server Machine подходит для рабочей базы данных, которая запускается, например, на веб-сервере или сервере приложений. На том же компьютере будут работать и другие серверы (веб-сервер), но от MySQL уже требуется повышенная производительность и устойчивость, соответственно и аппаратные ресурсы в таком варианте более значительные (в основном это относится к памяти). Есть вариант и выделенного сервера для работы базы данных – Dedicated MySQL Server Machine, в таком случае все ресурсы сервера отдаются в монопольное использование MySQL и такая инсталляция будет обладать наибольшим быстродействием. Обычно лучше всего выбирать первый или второй вариант – если у вас мощный компьютер, то можно для разработки выбрать и Server Machine, это позволит комфортнее тестировать ваши веб-приложения. Обычно же лучше всего выбрать вариант Developer Machine.
Multifunctional – и обычные таблицы, и транзакции!Далее необходимо выбрать тип базы данных. Вариантов снова три:
- Multifunctional — этот тип базы наиболее универсальный из всех. MySQL поддерживает как обычные таблицы (нескольких форматов), так и таблицы, в которых есть механизм транзакций. Такой сервер специально оптимизирован под два типа таблиц – MyISAM является наиболее быстрой и надежной реализацией обычных таблиц, а формат InnoDB поддерживает транзакции. Вопрос выбора типа таблиц (или Storage Engine в терминологии MySQL) сам по себе очень сложен и не тривиален. Надеемся в следующих статьях его осветить более подробно.
- Transaction Only — основным хранилищем данных в таком варианте является таблица формата InnoDB. Этот вариант требует больше ресурсов сервера (места на диске, скорости дисковой подсистемы и оперативной памяти), поэтому если вы не уверены, что транзакции вам необходимы, лучше выбрать первый вариант — пусть не так быстро, зато универсально.
- Non-transaction Only — все таблицы создаются только в формате MyISAM, который не поддерживает транзакций, но для обычных SQL-запросов и данных показывает наибольшую скорость и надежность.
Истина, как известно, где-то посередине, поэтому, скорее всего, для большинства применений вариант Multifunctional будет наиболее удобным, так как позволит параллельно использовать и транзакции, и обычные таблицы. Но если сервер готовится для реальной работы, а не для разработки, то лучше всего конфигурировать его именно под рабочие задачи, отключая все лишние опции.
Для транзакционных таблиц формата InnoDB необходимо указать дополнительно логический диск и путь до каталога, где сервер будет держать временные файлы и логи транзакций. Предупредим, что занимаемое ими место может быть существенным, поэтому лучше для серьезной работы выделить отдельный диск с достаточно свободным местом. Тип файловой системы также влияет на производительность, поэтому лучше всего располагать файлы на диске с NTFS. Удобный графический индикатор сразу покажет, сколько места есть и сколько свободно, рекомендовано иметь около 1 Гб свободного пространства (особенно если планируется серьезная работа с транзакциями).
MySQL допускает одновременную работу до 500 пользователейСледующим шагом будет настройка количества одновременных подключений (Concurrent connections) или пользователей, на которые рассчитан сервер. Причем варианты выбора называются в терминах типичных процедур/приложений, для которых используется сервер. Системы поддержки решений (Decision Support, DSS) характеризуются небольшим количеством одновременных подключений, но в то же время запросы каждого клиента более сложные, включающие группирующие функции, выборки с нескольких таблиц одновременно и сложной сортировкой. Для такого режима предел подключений — 20.
Обработка транзакций в реальном времени (Online Transaction Processin, OLPT) характеризуется меньшей сложностью запросов, но более жесткими требованиями к производительности и количеству одновременно работающих пользователей. Сервер должен успешно работать, даже если несколько сотен клиентов одновременно работают с данными (большей частью выборка или вставка данных). Для этого режима установлен лимит на 500 одновременных коннектов к серверу MySQL.
Конечно, можно и самостоятельно установить число подключений, исходя из собственного анализа нагрузки при реальной работе, – просто выберите из списка Manual Setting или введите свое число (что интересно, в выпадающем списке максимальное число коннектов 1400, скорее всего это предел для обычного сервера, при большей нагрузке может понадобиться кластеризация). Но в обычных условиях вариант Decision Support на 20 подключений как раз оптимален – как для разработки, так и для простого рабочего сервера.
Клиентские программы могут подключаться к серверу разными способами, но наиболее популярным и оптимальным является подключение по сети через TCP/IP, для этого за MySQL резервируется по умолчанию порт 3306, хотя вы можете при необходимости изменить его, а также полностью отключить доступ по сети (например, если база и приложение на одном компьютере, то взаимодействие через сокеты или каналы (named pipe) будет производительнее).
Для многоязычной информации лучше всего UnicodeНа следующем шаге выберите необходимую кодировку для хранения текстовых данных. Стандартная кодировка (Latin1) оптимальна для английского и западноевропейских языков. Для многоязычных текстов рекомендуется применять Unicode (UTF8), но вручную можно установить и любую другую кодировку, например cp1251 или koi8r. Если необходимые языковые файлы будут доступны серверу, то указывать кодировку можно будет прямо при создании таблиц и баз данных (например, через phpMyAdmin).
Сервер можно установить как системный сервис, который будет загружаться при старте ОС, можно также указать имя для сервиса, чтобы различать его, если одновременно установлено несколько серверов.
И последний шаг – установка аккаунтов пользователей. По умолчанию создается пользователь root с пустым паролем, который имеет все права на управление сервером, что может негативно сказаться на безопасности (ведь многие после установки так и не удаляли эти аккаунты, в результате чего компьютер практически открыт перед всеми желающими. Вы можете задать новый пароль для пользователя root, а также создать анонимный аккаунт. Отдельно есть опция, разрешающая подключения с привилегиями root с удаленных компьютеров. По возможности избегайте включения этой опции, особенно для рабочих серверов).
Все, после этого в следующем окне нажмите Execute, и Instance Config сама настроит сервер согласно вашим указаниям, сгенерирует файлы конфигурации my.ini, который, конечно, можно и вручную редактировать, но при помощи Instance Config или MySQL Administrator это куда проще и удобнее.
Да, кстати, работа утилиты Instance Config совсем не ограничивается инсталляцией, ее можно запустить в любой момент и перенастроить сервер для других применений. Она доступна из главного меню или из каталога /установочный путь/bin/MySQLInstanceConfig.exe.
Ссылки по теме
Статья получена: hostinfo.ru