Программное обеспечение: MySQL Администратор

Программное обеспечение: MySQL Администратор

Для многих MySQL разработчиков, понятие администрирование базы данных, практически незнакомо. Для удобства администрирования MySQL серверов, MySQL AB разработало новый графический пользовательский интерфейс. С простым и подходящим названием "MySQL Administrator". Первый выход приложения состоялся ещё в прошлом году, но в нем присутствовали ошибки, которые приводили к краху системы. Я ждал следующего выпуска. Недавно, MySQL AB выпустила более стабильную версию, конечно, по прежнему есть вещи которые требуют доработки, но теперь его вполне можно использовать.

by Russell J.T. Dyer

перевод by: ilya

оригинал http://www.unixreview.com/documents/s=8989/ur0409d/

Для многих MySQL разработчиков, понятие администрирование базы данных, практически незнакомо. Для удобства администрирования MySQL серверов, MySQL AB разработало новый графический пользовательский интерфейс. С простым и подходящим названием "MySQL Administrator". Первый выход приложения состоялся ещё в прошлом году, но в нем присутствовали ошибки, которые приводили к краху системы. Я ждал следующего выпуска. Недавно, MySQL AB выпустила более стабильную версию, конечно, по прежнему есть вещи которые требуют доработки, но теперь его вполне можно использовать.

"MySQL Administrator" позволяет администратору очень просто настроить MySQL сервер. Вы можете управлять пользователями, настраивать соединения с сервером, потоки. Так же имеете возможность проверить производительность сервера, просмотреть логи отражающие активность базы, скорость запросов и ошибки. Некоторые опции предназначены для архивации базы или восстановления, если это необходимо. Если вы используете репликацию базы данных, "MySQL Administrator" предоставляет интерфейс для мониторинга событий. И наконец, вы имеете возможность проверить таблицы, и сделать изменения. Вы не можете делать запросы, однако, для этого можно использовать "MySQL Control Center", приложение с GUI интерфейсом. "MySQL Administrator", приложение сфокусированное на администрирование и анализе базы данных. И делает это очень хорошо.

Установка

Копию "MySQL Администратор" вы можете загрузить свободно с MySQL AB's зеркала http://dev.mysql.com/downloads/administrator/. Версии доступны как под Linux так под Microsoft Windows. Тем не менее, "MySQL Администратор" работает только с версией MySQL 4.0 или выше, поэтому для ее использования, некоторым понадобится обновится. К тому же, у вас появляется гораздо больше возможностей с новой версией. Я рекомендую вам взглянуть на это перед окончательным обновлением. Небольшой тест между "MySQL Administrator" и использованием API скриптов.
Мой сервер стоит на Red Hat Linux, итак, я скачал полную версию. Это порядком 13.8 MB в архиве tar.gz. После закачки файла я переместился в свою /usr/local/ директорию и распаковал его:

tar xvzf /usr/local/mysql-administrator-1.0.12-linux.tar.gz
рис. 1 Диалоговое окно

Конечно же, вы можете поменять имя файла на свое. Следующим шагом, я сделал иконку на рабочем столе моего Gnom'a для удобного запуска "MySQL Administrator" который располагался в /usr/local/mysql-administrator/bin/. После этого, я кликнул по иконке на рабочем столе и стартовал программу. Диалоговой окно выглядело так как на рис. 1 :

Как вы видите, при старте вы должны ввести имя пользователя и пароль MySQL и имя хоста или IP адрес MySQL сервера. На моем сервере, я так же определил путь и имя файла к локальному сокету. Так как я запускал "MySQL Administrator" на своем сервере, я определил имя хоста как localhost. Однако, что бы запустить её удаленно, необходимо указать не только имя хоста (или домена) но так же и имя пользователя, который имеет права для удаленного доступа к MySQL базе. Для этого добавьте его в таблицу "user" в базу "mysql". Это можно сделать следующей командой с под mysqlclient'a с правами root:

GRANT ALL ON *.* TO russell@12.127.17.72;

Это означает, что пользователь "russell" получил все права на все базы данных и таблицы (т.к. *.*) с хоста с адресом 12.127.17.72. (между прочим, это не мой настоящий адрес). Если желаете, вы можете ограничить пользователя в правах, и предоставить доступ только к определенной базе данных, для этого замените первую звездочку на имя базы. Но в моем случае, пользователь должен был администрировать все MySQL БД. Так как администратор MySQL может удалить все таблицы, вы можете отменить эту привилегию введя:

REVOKE DROP ON *.* FROM russell@12.127.17.72;

После первого заявления, которое давало пользователю Russell все привилегии, эта, запрещает пользователю удалять таблицы.

Настройки Сервера
Рис. 2 Иконки

После того, как вы заполните диалоговое окно и подсоединитесь к MySQL серверу, появится главное окно программы. По левому краю (как на рис.2 ) находятся иконки, которые отображают доступные опции администратора:

"Server Information" предоставляет общую информацию о состоянии сервера а так же некоторую информацию о нем. (т.к. версия MySQL, IP адрес сервера) а так же информацию о пользователе, который запустил "MySQL Administrator".

Опция "Server Control" отображает в правой панели логи сервера а так же кнопку остановки MySQL сервера, все это работает замечательно, но нет возможности перезапустить сервер. Правда, для этого можно использовать командную строку.

Третий пункт, это "Startup Variables" - очень удобен. Особенно если вы не знаете как настроить логи или оптимальную производительность MySQL сервера.

Опция "Startup Variabls" представлена в виде панели с закладками. (см рис. 3).

Первая закладка "General Parameters" предоставляет форму для изменения местонахождения файлов базы данных MySQL сервера. Так же вы можете изменить количество максимально доступной памяти используемой для обработки запросов, которая иногда приводит к увеличению скорости при обработке запросов. Многие опции для оптимизации работы памяти доступны в закладке "Performance". Изменения сделанные в этой опции отражаются в "/etc/my.cnf". Поэтому вы должны перезапустить MySQL сервер с тем, что бы новые значения вступили в силы. Вот тут то, кнопка перезапуска была бы очень удобной.

Лог файлы, пользователи и статус сервера
Рис. 3 Закладки

Опция "Log Files" (см рис. 4)

предоставляет форму для определения пути и имени лог файла. Если логирование по прежнему не включено, "MySQL Administrator" сделает это за вас, путем добавления необходимых строк в my.cnf в секцию [mysqld]. Один небольшой недостаток (если вы чистюля), в том, что приложение вставляет комментарии после каждой записи в конфигурационный файл. Записи неуклюжи, а комментарии ненужные. Тем не менее, если удалить комментарий используя редактрок, например "vi", то "MySQL Administrator" не будет их добавлять, даже при дальнейших изменениях.

Для просмотра лог файлов в приложение служит следующая секция - "Server Logs". Она не делает каких бы то ни было изменений, как например "Startup Variables", даже если перезапустить MySQL сервер и приложение. Я использовал кнопку для обзора (т.к. "выбор файла") и выбора подходящего лог файла. Если вы установили директорию для лог файла, убедитесь что вы дали права на запись пользователю mysql , используя команды chown и chmod. Иначе, MySQL не сможет создавать лог файлы или обновлять их.

Рис. 4 Лог файлы

Одной, на мой взгляд, из хороших вещей в "MySQL Administrator", это то, что предлагается графический интерфейс для просмотра и редактирования пользовательских привилегий. Я получал множество сообщений об ошибки, когда выбирал закладку "User Administration" , наверно, кто-то не мог получить таблицу с сервера. После нажатия кнопки "ОК", я ещё раз 10 получал сообщение об ошибки и в конечном счете получил доступ к панели "User Administration". Я конечно постараюсь вытерпеть это до следующего релиза. Проблема, из-за которой эта опция становилась недоступной состояла в указание имени хоста для пользовательских привилегий. В соответствии со справкой (этот раздел был достаточно хорошо описан, остальные по минимуму) каждому пользователю из списка сопоставлялся список хостов. Похоже, что они не нашли удобного способа настроить привилегии пользователя глобально (когда хост указывается в виде %). Когда я добавлял нового пользователя или изменял хост с которого возможен доступ (основанный на IP адресе) приложение каждый раз выдавало ошибку или завершало работу при нажатие кнопки "принять". Это может показаться нехорошим, но, так как это единственная опция которую я не смог использовать, я думаю что "MySQL Administrator" вполне пригодна для использования. Разработчики по прежнему работают усердно, и в скором времени обещают исправить эти ошибки.

Опция "Server Connections" предназначена для отображения пользователей которые взаимодействуют с БД. Вы можете наблюдать, что каждый пользователь делает с базой в настоящий момент. А также имеете возможность отключить пользователя или просто убить процесс, для этого достаточно навести курсор на интересующий вас процесс
и нажать кнопку "Kill Thread". То же самое можно делать и для пользователей из "User Connections". Однако, если вы отключили пользователя, он может восстановить
соединение когда сгенерирует очередной SQL запрос.

Рис. 5 Архивация
Если вы просматриваете активность вашего сервера использую графический интерфейс, то вы так же можете наслаждаться опцией "Health". Которая показывает график, использования трафика на одной панели. На другой графически изображена загрузка памяти при обработки SQL запроса. В этой опции присутствует ещё 2 закладки, одна для отображения переменных сервера, а другая показывает статус сервера. Это очень удобно, если вы администрируете большую базу и хотите оптимально настроить её производительность. Правда вы не можете изменять эти переменные из этой панели, для этого используйте опцию "Startup Variables" или одну из других опций.

Архивация

Если вы хотите сделать архив вашей базы, то опция "Backup" поможет вам в этом. Нажатием на кнопку "New Project" , вы можете задать инструкции для архивирования базы. В левой части панели, у вас будут отображается все базы, которые есть на сервере. Выберете базу, которую вы хотите архивировать и добавьте её в список баз данных подлежащие архивированию. После того, как вы выбрали все базы, просто нажмите на кнопку "Save Project" что бы сохранить список архивируемых баз. Для ручного запуска архивации БД, кликните на кнопку "Start Backup". В открывшемся диалоговом окне введите имя дамп файла (mysqldump) и путь к нему, где он будет сохранен. Закладка "Schedule Backup" предоставляет вам планировщика для автоматического выполнения архивации БД из "cron". Так как опция использует mysqldump, то все опции для него могут быть установлены в закладке "Advanced Options".

Для восстановления БД, вам поможет опция "Restore Backup". Как правило, вы не сможете увидеть ни одного файла с архивом БД для восстановления. Для этого нажмите на кнопку "Change Path" и укажите "MySQL Administrator"'у путь, где располагается ваш дамп файл. Опций связанных с дамп файлом очень мало, так что вы просто запустите его. Все опции, которые вам нужны, устанавливаются при создании дамп файла. "MySQL Administrator" не дает возможности восстановить отдельную дату или таблицу не переписав все содержимое. Для этого нужно использовать текстовый редактор и править дамп файл.

Если вы используете репликацию "MySQL Administrator" предлагает вам опцию "Replication Status". Она не предоставляет много информации, но это всего лишь начало.
Я надеюсь в будущем она будет отображать больше информации.

Таблицы
рис. 6 Таблицы

Последняя опция в "MySQL Administrator" - Catalogs. Эта опция для проверки и модификации таблиц в БД. После выбора БД в левой части панели (игнорируя сообщения об ошибки), в правой, вы увидите список таблиц принадлежащих этой БД. (см. рис. 6)

Список, возле таблиц, предоставляет вам различную информацию о таблицах, тип, количество рядов, размер рядов, и т.д. Нажав на "Indices", он отобразит вам все индексы для всех таблиц в БД.

Так же, в этой опции, если вы 2-ы нажмете на имени таблицы (см. рис. 7), откроется окно, в котором вы сможете поменять структуру таблицы.

Вы можете изменять тип колонок, а так добавлять или удалять их. Так же предоставляется возможность, при желании, изменить индекс или тип (с MyISAM на InnoDb) таблицы.
Вы даже сможете добавлять или удалять целые таблицы используя этот интерфейс. Единственное что вы не сможете сделать, я говорил уже раньше, использовать запросы к БД. Так как это не административные функции.

Рис. 7 Редактор таблиц
Общее представление

Если MySQL хочет конкурировать на рынке с такими продуктами как Microsoft Access, тогда ему потребуется хороший графический интерфейс, как у "MySQL Control Center" и "MySQL Administrator". Конечно, при работе с "MySQL Administrator" обнаруживаются некоторые ошибки, но не смотря на это, более 90 % работает стабильно. Если все эти искажения зависели от моего сервера, то приложение возможно вообще не имеет ошибок.
Конечно, для конкурировании с Microsoft, все эти проблемы должны будут ликвидированны.

В общем, "MySQL Администратор" готовое для использования приложение и разработчики проделали большую работу для этого, особенно, принимая то факт, что
у них по прежнему 1-я версия. Я рекомендую всем, кто предпочитает использовать графический интерфейс для администрирования использовать "MySQL Администратор" и сообщать о всех ошибках в MySQL AB.

Russell Dyer программист на Perl, разработчик MySQL и Web разработчик проживает и консультирует в основном в New Orleans. Задолбать его можно по russell@dyerhouse.com.

Ищем уязвимости в системе и новых подписчиков!

Первое — находим постоянно, второе — ждем вас

Эксплойтните кнопку подписки прямо сейчас