38. ОСНОВНЫЕ ОБЯЗАННОСТИ АДМИНИСТРАТОРА СУБД MYSQL. Mysql администрирование


10 лучших инструментов для разработки и администрирования MySQL / Хабр

Многие компании создают различные многофункциональные приложения для облегчения управления, разработки и администрирования баз данных.

Большинство реляционных баз данных, за исключением MS Access, состоят из двух отдельных компонентов: «back-end», где хранятся данные и «front-end» — пользовательский интерфейс для взаимодействия с данными. Этот тип конструкции достаточно умный, так как он распараллеливает двухуровневую модель программирования, которая отделяет слой данных от пользовательского интерфейса и позволяет сконцентрировать рынок ПО непосредственно на улучшении своих продуктов. Эта модель открывает двери для третьих сторон, которые создают свои приложения для взаимодействия с различными базами данных.

В Интернете каждый может найти много продуктов для разработки и администрирования баз данных MySQL. Мы решили собрать 10 самых популярных инструментов в одной статье, чтобы вы смогли сэкономить свое время.

1. Workbench
Первое место, по праву принадлежит инструменту Workbench (разработка компании Sun Systems/Oracle), который может работать на платформах Microsoft Windows, Mac OS X и Linux. Workbench объединяет в себе разработку и администрирование баз данных и является преемником DBDesigner4.

MySQL Workbench распространяется под свободной лицензией — Community Edition и с ежегодной оплачиваемой подпиской — Standard Edition. Последняя включает в себя дополнительные возможности, которые способны существенно улучшить производительность, как разработчиков, так и администраторов баз данных.

Скачать Workbench можно здесь dev.mysql.com/downloads/workbench

Стоимость — бесплатно.

Что делает Workbench популярным?

  • возможность представить модель БД в графическом виде, а также редактирование данных в таблице;
  • наличие простого и функционального механизма по созданию связей между полями таблиц, среди которых реализована связь «многие-ко-многим» с возможностью создания таблицы связей;
  • функция Reverse Engineering позволяет восстанавливать структуру таблиц и связей из той, которая была реализована ранее и хранится на сервере БД;
  • наличие редактора SQL-запросов, который дает возможность при отправке на сервер получать ответ в табличном виде и другие возможности.
2. Navicat

Второе место занимает Navicat (разработка компании PremiumSoft CyberTech Ltd) — инструмент для разработки и администрирования баз данных, который работает на любом сервере MySQL, начиная с версии 3.21. Для MySQL, Navicat доступен для работы на платформах Microsoft Windows, Mac OS X и Linux.

Подробнее о Navicat вы можете узнать здесь www.navicat.com/en/products/navicat_mysql/mysql_overview.html

Стоимость продукта варьируется от 199 до 379 долл. США.

Что делает Navicat популярным?

  • наличие визуального конструктора запросов;
  • возможность импорта, экспорта и резервного копирования данных;
  • возможность создавать отчеты;
  • SSH и HTTP туннелинг;
  • миграция и синхронизация данных и структуры;
  • инструмент для планирования задач и другие возможности.
3. PHPMyAdmin

PHPMyAdmin — бесплатное приложение с открытым кодом, предназначенное для администрирования СУБД MySQL. PHPMyAdmin представляет собой веб-интерфейс с помощью которого можно администрировать сервер MySQL, запускать команды и просматривать содержимое таблиц и БД через браузер.

Скачать PHPMyAdmin можно здесь www.phpmyadmin.net/home_page

Стоимость — бесплатно.

Что делает PHPMyAdmin популярным?

  • возможность управлять СУБД MySQL без непосредственного ввода SQL команд;
  • как панель управления PHPMyAdmin предоставляет возможность администрирования выделенных БД;
  • интенсивное развитие;
  • возможность интегрировать PHPMyAdmin в собственные разработки благодаря лицензии GNU General Public License и другие возможности.
4. dbForge Studio for MySQL

dbForge Studio for MySQL — инструмент, представляющий интерес как для пользователей MySQL, так и для разработчиков БД. С его помощью вы сумеете легко автоматизировать рутинную работу и сэкономить время. Сегодня dbForge Studio for MySQL представлен в трех редакциях: Express, Standard и Professional, что позволяет выбрать тот инструмент, который нужен именно вам. Пользоваться dbForge Studio for MySQL можно как коммерческой, так и бесплатной версией.

Ознакомиться с возможностями dbForge Studio for MySQL вы можете здесь www.devart.com/ru/dbforge/mysql/studio

Существует как бесплатная, так и платная версии, цена последней составляет 49,95 долл. США (стандартное издание ) и 99,99 долл. США (профессиональное издание).

Что делает dbForge Studio популярным?

  • наличие средств для централизованного администрирования;
  • инструменты для сравнения БД;
  • визуальный профилировщик запросов;
  • возможность управлять привилегиями пользователей;
  • наличие Дизайнера БД, который позволяет строить визуальные диаграммы;
  • улучшенная работа с проектами БД и другие возможности.
5. HeidiSQL

HeidiSQL — бесплатный инструмент для управления базами данных. Достойная альтернатива PHPMyAdmin, которая позволяет создавать и редактировать таблицы, представления, триггеры, процедура, а также просматривать и редактировать данные. Также HeidiSQL предоставляет возможность экспорта данных как в SQL файл, так и в буфер обмена на других серверах.

Скачать HeidiSQL можно здесь Сайт: www.heidisql.com

Стоимость — бесплатно.

Что делает HeidiSQL популярным?

  • возможность подключаться к серверу с помощью командной строки;
  • возможность пакетной оптимизации и восстановления таблиц;
  • возможность редактирования столбцов, индексов и внешних ключей таблиц, редактирование тела и параметров SQL процедур, триггеров и др.;
  • простое форматирование неупорядоченных SQL;
  • синхронизация таблицы между разными базами данных и другие возможности.
6. SQL Maestro для MySQL

SQL Maestro для MySQL — инструмент для администрирования, разработки и управления наиболее востребованных СУБД. Удобный графический интерфейс дает возможность выполнять SQL запросы и скрипты, управлять привилегиями пользователей, экспортировать и создавать резервные копии данных.

Ознакомиться с возможностями и купить SQL Maestro для MySQL можно здесь www.sqlmaestro.com/products/mysql

В зависимости от выбранной лицензии и варианта использования, стоимость данного инструмента варьируется от 99 до 1949 долл. США.

Что делает SQL Maestro для MySQL популярным?

  • поддержка версий MySQL сервера с версии 3.23;
  • наличие конструктора баз данных;
  • возможность редактирование, группировки, сортировки и фильтрации данных;
  • визуальный конструктор запросов;
  • SSH и HTTP туннелинг;
  • BLOB-редактор и другие возможности.
7. EMS SQL Manager для MySQL

EMS SQL Manager для MySQL — инструмент для разработки и администрирования баз данных, который поддерживает различные функции MySQL и работает со всеми версиями MySQL старше 3.23. С его помощью у вас есть возможность визуально редактировать, импортировать и экспортировать БД, выполнять сценарии SQL, управлять привилегиями пользователей, визуально проектировать базы данных MySQL.

Подробнее ознакомиться и приобрести EMS SQL Manager для MySQL можно здесь www.sqlmanager.net./ru/products/studio/mysql

Существует платная и бесплатная версии приложения. Последняя имеет ряд функциональных ограничений. Стоимость платной версии варьируется в пределах 95 – 245 долл. США.

Что делает EMS SQL Manager for MySQLпопулярным?

  • поддержка данных UTF8;
  • простое управление различными объектами MySQL;
  • совместимость со всеми версиями с 3.23 по 6.0 включительно;
  • наличие графических и текстовых инструментов для формирования запросов;
  • SSH и HTTP туннелинг;
  • удобный конструктор отчетов и другие возможности.
8. SQLyog

SQLyog — один из наиболее мощных инструментов, который сочетает в себе возможности MySQL Administrator, PHPMyAdmin и некоторые другие инструменты для администрирования и разработки баз данных. SQLyog работает на платформах Microsoft Windows, Windows NT. и Linux с помощью Wine.

Подробнее ознакомиться и приобрести SQLyog можно здесь www.webyog.com/en/index.php

Доступна как бесплатная, так и платная версия SQLyog. Стоимость платной версии — от 99 до 1499 долл. США (варьируется в зависимости от количества пользователей и лицензии, с поддержкой или без нее).

Что делает SQLyog популярным?

  • удобный конструктор запросов;
  • возможность синхронизации данных;
  • поддержка юникода;
  • SSH и HTTP, HTTPS туннелинг;
  • «умное» автозавершение работы;
  • интеллектуальное дополнение кода и другие возможности.
9. DBTools Manager

DBTools Manager — приложение для управления данными, с встроенной поддержкой MySQL, PostgreSQL, MSAccess, MSSQL Server, Oracle и других БД. Поддерживаемые платформы: Windows 2000, XP, Vista, 7.

DBTools Manager представлен в бесплатном (Standard) и платном варианте (Enterprise). Стоимость составляет 69.90 долл. США за одну лицензию, при покупке нескольких лицензий предусмотрены скидки.

Подробнее ознакомиться и приобрести DBTools Manager можно здесь www.dbtools.com.br/EN/dbmanagerpro

Что делает DBTools Manager популярным?

  • управление базами данных, таблицами;
  • наличие редактора запросов;
  • наличие мастера создания форм и отчетов;
  • возможность импорта и экспорта данных из различных источников, среди которых MSAccess, MSExcel, Paradox, FoxPro, DBF, ODBC таблицы, текстовые и XML файлы;
  • конструктор диаграмм и другие возможности.
10. MyDB Studio

MyDB Studio — бесплатный инструмент для администрирования БД MySQL, который позволяет создавать, редактировать и удалять записи, таблицы и базы данных. Работает исключительно на платформе Windows.

Скачать MyDB Studio можно здесь www.mydb-studio.com

Стоимость — бесплатно.

Что делает MyDB Studio популярным?

  • возможность подключаться к неограниченному количеству баз данных;
  • возможность подключения по SSH каналам;
  • создание откатов и экспорт БД в различные форматы;
  • возможность переноса, резервного копирования, также восстановления БД и другие возможности.

habr.com

Обзор инструментов для работы с MySQL

Наболее популярная и лучшая open source база данных - это MySQL. Она быстра, надежна и очень проста в использовании. Одной из основных особенностей MySQL является её кросс-платформенная поддержка, она работает почти на всех операционных системах, включая Windows, OSX, Linux и многие другие. Поэтому MySQL является лучшей базой данных и мы все её используем. Вопрос сейчас состоит только в том, какие лучше инструменты использовать для работы с MySQL.

В обзоре ниже представлены некоторые из самых полезных и популярных средства разработки для Mac, Windows и Linux, для начинающих и для профессионалов. Среди этих инструментов особо стоит выделить PhpMyAdmin, MySQL Workbench, HeidiSQL и SequelPro.

MySQL Workbench (Win, Linux, Mac)

MySQL Workbench

Это приложение представляет собой полнофункциональный инструмент для работы с данными, он включает проектирование баз данных, моделирование, создание и поддержание сгруппированных в единую среду разработки данных для MySQL. Бесплатная версия - Community Edition, которая содержит функции, которые будут удовлетворять практически все ваши потребности. Если вам будет не хватать каких-либо функций, то всегда можно перейти к коммерческой версии (Standard Edition).

dbForge Studio for MySQL

dbForge Studio — гибкий профессиональный инструмент для разработчиков БД и пользователей MySQL. Он автоматизирует рутинные задачи по разработке и администрированию СУБД MySQL, а также открывает новые возможности для получения лучшего результата.

Вы с легкостью сможете разрабатывать SQL скрипты, хранимые процедуры и функции, составлять и выполнять запросы, редактировать данные, осуществлять их экспорт и импорт, управлять пользователями, редактировать объекты БД, работать с проектами БД и многое другое.

Основные возможности:

  • Дизайнер Баз Данных для визуального построения структуры базы данных
  • Отладка SQL и хранимого кода
  • Улучшенное управление проектами БД
  • Мастер сравнения данных
  • Мастер сравнения схем
  • Визуальные редакторы объектов
  • Автодополнение кода
  • Навигация по коду
  • Библиотека шаблонов
  • Проверка SQL синтаксиса
  • Среда разработки
  • Визуальное построение и редактирование запросов
  • Поиск объектов БД
  • Проводник БД
  • Менеджер сессий
  • Средства администрирования
  • Регулирование транзакциями
  • Информация о параметрах
  • Менеджер безопасности
  • Мастера экспорта и импорта БД

HeidiSQL -  (Win, Linux)

Heidi SQL

Heidi SQL -  легкий и быстрый, с гибким интерфейсом, он позволяет Вам просматривать и редактировать ваши базы данных, управлять таблицами, просматривать и редактировать записи, управлять привилегиями пользователей, импортировать данные из текстовых файлов, запускать SQL запросы, синхронизировать таблицы между двумя базами данных и экспортировать выбранные таблицы в другие базы данных или SQL-скрипты, и все это с интуитивно понятным интерфейсом Windows.

 

Aqua Data Studio (Win, Linux, OS X, Solaris)

Aqua Data Studio

Это IDE состоит из четырех основных областей функциональности: работа с запросами и средства администрирования; инструмент для сравнения баз данных, source control и файловых систем; встроенный инструмент контроля версий Subversion (SVN) и CVS, и мощный инструмент моделирования баз данных. Studio имеет единый интерфейс для всех основных реляционных баз данных, это дает разработчику возможность одновременно решать несколько задач, в рамках одного приложения.

 

phpMyAdmin

phpMyAdmin

Этот очень популярный, с большими возможностями и в тоже время простой в использовании бесплатный инструмент, написанный на PHP, он был создан для разработки и администрации MySQL. Он может создавать и удалять базы данных, создавать/удалять/изменять таблицы, удалять/редактировать/добавлять поля, выполнять любые SQL-комманды, управлять пользователями и разрешениями для них. Еще одна интересная возможность этого легендарного инструмента заключается в том, что вы можете скачать и изменить тему, скачать темы здесь: phpMyAdmin Themes.

 

SQLyog MySQL GUI (Win)

SQLyog

SQLyog является еще одним популярным SQL-инструментом, который имеет несколько полезных функций, таких как визуальная схема дизайнера, визуальный построитель запросов, автовставка комманд и синхронизация данных / структуры. Он поддерживает HTTP / HTTPS / SSH туннелирование и SSL соединения. Вы также можете определить работу менеджера, установить запланированное резервное копирование баз данных и использовать сервис уведомлений, который будет напоминать когда какая-либо работа будет завершена. Существует бесплатная Community version и коммерческая Enterprise Edition. Вы также можете использовать MONyog, MySQL Monitor и Advisor.

 

MySQL-Front (Win)

MYSQL Front

Это графический GUI для MySQL баз данных, представляет собой "реальное" приложение, он может предложить более изысканный пользовательский интерфейс, чем это возможно в системах построеных на PHP и HTML. Мгновенный отклик, так как нет задержки при перезагрузке HTML-страниц. Если ваш провайдер позволяет, MySQL-Front можно напрямую соединить с базой данных. В противном случае, нужно только установить один небольшой скрипт на сайте. Информация о логине хранится на жестком диске, так что вам больше не нужно входить на различные веб-интерфейсы.

 

Sequel Pro (Mac OS X)

Sequel Pro

Эта MAC OSX приложение управления базы данных предоставляет вам прямой доступ к вашей MySQL базе данных на локальных и удаленных серверах с поддержкой импорта и экспорта данных из популярных файлов, включая SQL, CSV и XML. Sequel Pro провозгласил себя "Лучший средством управления базами данных MySQL для Mac OS X".

 

SQL Buddy (Web-App)

SQL Buddy

Это легкий инструмент для управления базами данных является поистине удивительным. Он очень, очень прост в установке, просто разархивируйте папку на сервере и всё. Что касается обновления, то удалите старую версию и замените его новой версией, всё просто.

 

EMS SQL Manager (Win)

EMS SQL Manager

EMS SQL Manager представляет собой довольно мощнейший инструмент для администрирования и разработки баз данных. Возможности включают: MySQL триггеры, представления, хранимые процедуры и функции, внешние ключи InnoDB, она позволяет создавать и редактировать все объекты баз данных MySQL, визуально проектировать базы данных, запускать сценарии SQL, импортировать и экспортировать данные, управление пользователями и их привилегиями, и многие другие полезные функции. Существует коммерческая версия, но можно скачать и бесплатную версию, она достаточно мощная и предлагает множество возможностей.

 

Navicat Lite MySQL Admin Tool (Win, OS X, Linux)

Navicat Lite MySQL Admin Tool

Navicat является быстрым, надежным и популярным (миллионы скачиваний) инструментов администрирования баз данных, специально построенном для упрощения управления базами данных и сокращение административных расходов. Разработанный для удовлетворения нужд администраторов баз данных, разработчиков, а также малых и средних предприятий, Navicat построен с интуитивно понятным графическим интерфейсом, который позволяет создавать, организовывать доступ и обмениваться информацией безопасным и простым способом. Navicat Lite доступна для бесплатного скачивания только для не-коммерческих клиентов.

 

DreamCoder for MySQL (Win)

DreamCoder for MySQL

DreamCoder работает со всеми версиями MySQL от 3.23 до 6.0, и поддерживает все функции MySQL, включая таблицы, представления, процедуры, функции, триггеры, таблицы InnoDB, внешние ключи, UDFS, типы BLOB и т.д. Он также включает в себя самые современные возможности для управления данными, позволяет визуально строить запросы, выполнять запросы, выполнять скрипты, генерировать отчеты, мониторить базу данных и экспортировать и импортировать данных в/из наиболее популярных файловых форматов. DreamCoder для MySQL является простым в использовании для начинающих пользователей MySQL и является достаточно мощными для любого опытного пользователя.

 

Toad MySQL (Win)

Toad MySQL

Toad для MySQL - это инструмент для разработки и администрирования баз данных, который обеспечивает высокие возможности для быстрого создания и выполнения запросов и управления сложными системами баз данных. Он предоставляет утилиты для сравнения, извлечение и поиска объектов, управление проектами, импорта / экспорта данных и администрирования БД.

 

DB Tools Manager Professional (Win)

DB Tools Manager Professional

DBManager это довольно мощное приложение управления данными. С встроенной поддержка MySQL, PostgreSQL, InterBase / Firebird, SQLite, DBF таблиц, MSAccess, MSSQL Server, Sybase, Oracle и ODBC баз данных, что делает его одним из самых передовых приложений баз данных. Free Edition (Standard Edition) имеет множество возможностей, что делает его идеальным для новых пользователей базы данных для выполнения основных функций управления базами данных, вы можете использовать его в не коммерческих целях.

 

MyDB Studio (Win)

MyDB Studio

MyDB Studio представляет собой полный набор мощных инструментов для администрирования серверов MySQL. MyDB Studio (Freeware) предназначен для MySQL-разработчиков и администраторов, для оперативного управления, создания и выполнения запросов и более эффективной разработки SQL и PHP-кода.

 

MySQL Sidu (Win)

MySQL Sidu

MySQL Sidu является бесплатным MySQL-клиентом, который работает через веб-браузер, он является простым, интуитивно понятным инструментом. Sidu не столь мощный, как другие подобные инструменты, но он заслуживает свое место в этом списке, его функции могут быть ограничены, но он делает именно то, о чем говорит его имя (Sidu означает Select Insert Delete Update).Вы также можете использовать специальный плагин для браузера Firefox, что позволяет вставлять данные из текстовых полей и textarea в веб-страницу. Firefox addon for MySQL Sidu.

 

Если у Вас возникли вопросы, то для скорейшего получения ответа рекомендуем воспользоваться нашим форумом

www.webmasters.by

Инструментарий админа MySql - «Хакер»

Содержание статьи

Практически любое современное клиент-серверное приложение не обходится без СУБД, и в большинстве организаций обслуживание серверов баз данных лежит исключительно на плечах сисадмина. Штатные инструменты позволяют решить только базовые задачи, и их функций не всегда достаточно. Утилиты сторонних разработчиков сделают администрирование MySQL и клонов очень простым.

 

Интерфейс администрирования

MySQL и клоны по умолчанию распространяются без графического интерфейса. В самых простых случаях с несколькими базами для управления достаточно командной строки, когда же количество серверов, баз и админов, их обслуживающих, переваливает за десяток, необходимость в GUI становится более очевидной. Oracle предлагает свою разработку — единый инструмент для разработчиков баз данных и администраторов MySQL Workbench для Windows, Linux, OS X. Это мощная среда с большими возможностями, позволяющая визуально проектировать, создавать базы данных и управлять ими. Доступны все инструменты для настройки серверов, администрирования учетных записей, бэкапа и восстановления, аудита и простого мониторинга состояния. Также с его помощью можно легко выполнить миграцию с других СУБД — MS SQL Server, Sybase ASE, PostreSQL и прочих. Возможности к тому же можно расширить при помощи плагинов. Интерфейс не локализован. Функций очень много, поэтому некоторое время придется потратить, чтобы освоиться, хотя в общем среда удобная. Версия Community (OSS) Edition распространяется по лицензии GNU GPL. Установка проблем не вызывает, доступны пакеты под разные дистрибутивы Linux, Windows и OS X. Для Red Hat / CentOS лучше воспользоваться в EPEL, в Ubuntu APT репозиторием разработчика.

$ wget -c http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo dpkg -i mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo apt-get install mysql-workbench

Очень популярен среди хостеров phpMyAdmin, позволяющий выполнить в интуитивной среде большинство операций по управлению базами данных, работе с таблицами, индексами, правами доступа, настройку репликации, экспорт информации, бэкап/восстановление, просматривать статистику и так далее. При этом остается возможность непосредственного ввода любых SQL-запросов. Поддерживается управление несколькими серверами. Все достаточно интуитивно, и с администрированием может справиться пользователь без особой подготовки, с любого устройства, где есть браузер. В Сети множество инструкций и примеров по использованию phpMyAdmin. Установка из репозитория пакетов проблем не вызывает, в качестве веб-сервера можно использовать не только Apache, но и более легкие nginx или lighttpd. Некоторые панели управления хостингом вроде cPanel и Plesk имеют поддержку phpMyAdmin.

Пользователи Windows наверняка оценят HeidiSQL, поддерживающий управление MySQL, MS SQL и PostgreSQL (пока экспериментально) и распространяемый под Open Source лицензией. Программа имеет очень удобный интерфейс, поддерживает подключение сразу к нескольким серверам, которые доступны в одном окне, это упрощает операции по экспорту/импорту данных. Доступно создание и редактирование баз, таблиц, управление привилегиями, экспорт таблиц (CSV, HTML, XML, SQL, …), поиск, оптимизация, мониторинг. При написании запросов помогает автодополнение. Поддерживается командная строка, возможно подключение по SSH-тоннелю. Есть Portable-версия, используя Wine, его можно запустить и в *nix / OS X.

Для тех, кому не подошли описанные продукты, в интернете можно найти большое количество аналогов: SQLyog, dbForge Studio for MySQL, TOra, SQL Buddy и другие.

 

Утилиты мониторинга

Как и любое приложение, СУБД требует постоянного наблюдения за своей работой, чтобы в случае проблем легко можно было найти узкое место. Общую информацию о работе MySQL можно получить при помощи стандартного клиента mysqladmin. Запросы вроде SHOW QUERY LOG, SHOW PROCCESSLIST, SHOW VARIABLES, SHOW GLOBAL STATUS и другие редко дают четкую картину, так как медленные запросы есть всегда, но они не обязательно влияют на работу сервиса. Есть еще утилита mysqldumpslow, которая анализирует данные slow.log и выводит самые частые медленные запросы.

Версия Enterprise предлагает специальный инструмент MySQL Enterprise Monitor, который предоставляет в реальном времени информацию о производительности и доступности всех баз данных MySQL. Кроме того, для большинства систем мониторинга, включая Open Source Nagios, Cacti, Zabbix, Ganglia, доступны специальные плагины. Например, Nagios. Каждый из плагинов должен быть правильно настроен, чтобы представить подробную информацию о том, что происходит в MySQL, а это нередко требует опыта. Разворачивать полноценную систему мониторинга в том случае, когда задача только контроль СУБД, не всегда рационально. В этом случае на помощь приходят специализированные инструменты.

К сожалению, весьма популярный mytop уже более двух лет не развивается (хотя это не значит, что его нельзя использовать), но у него есть прекрасная и более функциональная замена. Начиная с версии MySQL 3.23.41 в состав InnoDB входит InnoDB Monitor innotop, некий аналог юниксовского top для этой СУБД. Innotop выводит в удобном виде информацию по внутреннему состоянию InnoDB, которая может пригодиться при настройке производительности. Вариантов запуска утилиты много. Самый простой — выполнить от имени определенного пользователя без параметров

$ innotop -u root -p password

По умолчанию подключение производится к локальному серверу, но можно указать любой узел или мониторить сразу несколько серверов. Список всех команд (Shift + клавиша) можно получить, нажав клавишу вопроса. Например, <Shift + Q> выведет список всех текущих запросов. Параметр —write позволяет сохранить данные соединения в файл .innotop/innotop.conf:

$ innotop --write

Единственное неудобство по указанным утилитам — они показывают информацию в реальном времени, а о сохранении и последующем анализе статистических данных следует позаботиться самому.

Появившийся в 2009 году проект mycheckpoint за несколько лет стал фактически стандартным инструментом для мониторинга MySQL. Причина популярности — это уникальный подход. Для хранения и запроса используется база данных, в которую (одна операция INSERT) собираются данные о метриках мониторинга, статистики и переменных MySQL, информации об ОС Linux (состояние ОЗУ и swap, нагрузка и прочее). Также в базу попадают результаты пользовательских запросов. Собранную информацию легко просмотреть при помощи простых SELECT-запросов. При этом администратор получает наглядные графики (на основе Google Chart API), отчеты и метрики, которые генерируются на лету. Для вывода HTML отчетов может использоваться собственный веб-сервер. Также могут быть настроены предупреждения, отсылаемые по email. Возможен мониторинг удаленной системы и нескольких серверов.

Написан на Python, поэтому установка сложностей не вызывает. Разработчики предлагают deb, rpm и tar.gz пакет и сырцы. В Ubuntu следует ввести следующие команды:

$ sudo apt-get install python-mysqldb $ sudo dpkg -i mycheckpoint-231-1.deb

После чего потребуется создать базу данных для хранения информации:

$ mysql -uroot -ppassword mysql> CREATE DATABASE mycheckpoint; mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'user'@'localhost' IDENTIFIED BY 'password';

Для сбора и вывода данных используется утилита mycheckpoint, которую можно запускать вручную или через cron. Параметры подключения к MySQL- и SMTP-серверу указываются также в командной строке:

$ mycheckpoint --user=user --password=password --host=server --port=3306

Или записываются в конфигурационный файл (по умолчанию /etc/mycheckpoint.cnf):

*/5 * * * * mycheckpoint --defaults-file=/root/mycheckpoint.cnf

Теперь можем просматривать собранную информацию и генерировать отчеты при помощи SQL-запросов.

$ mysql mycheckpoint -e "SELECT html FROM sv_report_html_brief" --silent --raw > ./checkpoint_report.html

Еще один полезный инструмент, позволяющий контролировать, анализировать и при необходимости изменять обмен данными между MySQL-сервером и клиентским приложением, называется MySQL Proxy. Возможности у программы очень большие. Работает как под Windows, так и под *nix-системами. Установка проблем не вызывает, в настройках необходимо указать порт MySQL (по умолчанию 3306) и PHP (строка mysql.default_port в php.ini). Все запросы формируются на языке Lua, документация здесь хорошо помогает.

 

Аудит MySQL

Одна из проблем, связанных с эксплуатацией любого программного продукта, — его неправильная настройка. После установки присутствуют лишние демонстрационные учетные записи, тестовые базы, сами пользователи могут ставить простые пароли, которые легко подобрать. Решить эти проблемы можно лишь при помощи постоянного аудита, который к тому же будет обязателен, если производится обработка конфиденциальных/персональных данных (кредитные карты, медицинские записи и подобное). Требуется создать среду, соответствующую стандартам безопасности (SOX, HIPAA и прочим), при расследовании инцидентов, устранении неполадок. После установки нужно обязательно использовать mysql_secure_installation, который обеспечивает минимальный набор проверок, позволяющих скорректировать общие настройки безопасности.

Далее уже следует использовать инструменты и скрипты, о которых ниже. Задача аудита упрощается тем, что разработчики MySQL предлагают соответствующий API. Правда, в MySQL плагин audit_log доступен только для версии Enterprise. Разработчики Percona Server предлагают GPL альтернативу данному модулю, которая подходит для аудита MySQL и клонов. Две другие альтернативы, McAfee MySQL Audit Plugin и MariaDB Audit Plugin for MySQL, также справляются со своей задачей и позволяют производить аудит MariaDB, MySQL и Percona Server, но используют свой собственный формат журнала аудита, отличающийся от стандартного MySQL. Это потребует чуть больших первоначальных настроек. Применение плагинов простым назвать нельзя и подробно освещено в документации, которую все равно требуется прочитать, поэтому останавливаться не будем.

Кроме того, Патриком Карлссоном (Patrik Karlsson) представлен набор тестов для сетевого сканера Nmap, позволяющий протестировать сервер на наличие основных проблем безопасности. В Ubuntu после установки настройки хранятся в каталоге /usr/share/nmap/nselib/data и nmap/script, для проверки сервера необходимо указать параметры подключения и учетную запись.

$ nmap -p 3306 1.1.1.1 --script mysql-audit --script-args "mysql-audit.filename='/usr/share/nmap/nselib/data/mysql- cis.audit' ,mysql-audit.username='root',mysql- audit.password='password'"

Хакер им воспользуется в любом случае, поэтому админ просто обязан периодически проверять серверы таким способом. Два пакета, о которых следует рассказать отдельно, также содержат инструменты аудита.

 

Percona Toolkit for MySQL

Штатные инструменты, поставляемые с MySQL, предоставляют лишь базовые возможности по администрированию, в результате многие операции приходится выполнять вручную. Это может быть проблемой, ведь уследить за всем очень сложно, и часто потребуется определенный опыт, да и легко допустить ошибку. Пакет Percona Toolkit for MySQL собрал наработки двух проектов — Maatkit и Aspersa — и предоставляет скрипты, позволяющие производить многие рутинные операции администрирования: проверять состояние репликации, собирать информацию, оптимизировать запросы, производить тюнинг сервера, архивировать/восстанавливать данные и многое другое. Всего более 4000 тестов и настроек. Пакет доступен для основных дистрибутивов Linux (в Ubuntu пакет percona-toolkit). После установки получим 32 утилиты, имя которых начинается с pt-*, назначение часто понятно из названия. При запуске можно задавать различные фильтры и форматировать вывод. Поэтому документацию почитать все равно придется, так как каждая утилита имеет большое количество параметров. Например, скрипт pt-summary выведет всю информацию по серверу, собранную /proc/cpuinfo, /proc/meminfo, mount, df и другими утилитами, pt-show-grants покажет все права пользователей СУБД, pt-query-digest позволяет строить отчеты, основанные на анализе логов, обработанных сервером запросов, а также информации, собранной processlist и tcpdump. Например, просмотр медленных запросов двумя способами:

$ pt-query-digest slow.log $ pt-query-digest --user=user --password=password --processlist --host=example.org

Еще один популярный пакет — openark kit предлагает 14 утилит, позволяющих провести тестирование СУБД: проверять установки, проверять пароли (пустые, одинаковые, слабые), блокировать аккаунты, прерывать запросы, фильтровать записи в журнале, выводить статус репликации, исправлять кодировки и многое другое. Распространяется по лицензии BSD. Написан на Python и требует python-mysqldb. Для установки предлагаются deb- и rpm-пакеты и сырцы, процесс стандартный и проблем не вызывает.

Наиболее популярен скрипт комплекта oak-security-audit, предназначенный для периодического аудита аккаунтов, паролей, привилегий и прочих настроек сервера. В общем случае его можно запустить без параметров. По умолчанию используется режим наибольшего уровня контроля системы (соответствует —audit-level=strict):

$ oak-security-audit --socket=/var/run/mysqld/mysqld.sock --user=user --password=password

В результате получим отчет, все, что не помечено как Passed, требует пристального внимания. По умолчанию утилиты из openark kit (включая и mycheckpoint, о котором выше, того же разработчика) используют для подключения к СУБД сокет /var/run/mysqld/mysql.sock (это вшито в сам скрипт), в Ubuntu файл называется mysqld.sock. Чтобы не задавать каждый раз путь, можно использовать заранее подготовленный файл с настройками подключения и указывать при помощи —defaults-file. Как вариант: изменить настройки MySQL в my.cnf. Править скрипты неудобно, так как при обновлении они работать не будут. Следующий скрипт, oak-block-account, очень популярен у разного рода хостеров для временного отключения доступа к СУБД. Дело в том, что стандартный механизм СУБД не позволяет отключать временно аккаунт (что-то вроде REVOKE login ON .), то есть если учетная запись есть, пользователь всегда может подключаться к базе данных. Можно, конечно, использовать что-то вроде

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USER'@'%';

но в случае восстановления прав придется помнить все настройки. И главное, если посмотреть права при помощи

mysql> SHOW GRANTS FOR 'USER'; GRANT USAGE ON *.* TO 'USER'@'%' IDENTIFIED BY PASSWORD .....

мы убедимся, что такая команда не сбрасывает USAGE. Использование REVOKE USAGE фактически означает DROP USER. Проще изменить логин и пароль, но восстановление может быть проблемой. В общем, возни и рисков много. В случае использования oak-block-account учетная запись остается неизменной, ей просто задается временный пароль, поэтому подключиться с этой учетной записью нельзя.

$ oak-block-account --block --account-user=USER --account-host=example.org

Дополнительный параметр —kill позволит сбросить сразу все активные подключения. Восстановить работоспособность учетки также просто. Смотрим список аккаунтов и их статус:

$ oak-block-account --list

И включаем учетную запись:

$ oak-block-account --release --account-user=USER --account-host=example.org

Другие скрипты из openark kit позволяют упростить некоторые операции. Например, oak-chunk-update дает возможность выполнить большие операции UPDATE/DELETE без длительных блокировок, разбив задачу на небольшие куски. Скрипт oak-show-replication-status выводит состояние репликации, oak-kill-slow-queries удаляет запросы, выполняющиеся уже долгое время, oak-repeat-query выполняет запрос, пока не достигнет определенного условия (количество итераций, время).

 

Тюнинг MySQL

Оптимизация настроек очень тонкий процесс, ведь нужно на основании собранной статистики изменить только то, что действительно повлияет на производительность. Самым известным инструментом для MySQL является Perl-скрипт MySQLTuner, который доступен в репозиториях большинства дистрибутивов Linux. Он читает текущие настройки сервера и установки MySQL, после чего выдает рекомендации (только рекомендации) по их изменению. Если установка производилась при помощи пакетов, то достаточно ввести имя скрипта, иначе следует вызывать, указывая интерпретатор:

$ perl mysqltuner.pl

Далее будут запрошены логин и пароль администратора, после чего мы получим метрики системы и рекомендации. Кроме этого, MySQLTuner показывает информацию об индексах в таблицах и фрагментации, которые также влияют на скорость работы сервера. В случае необходимости получим рекомендации произвести перестановку индексов и дефрагментацию. Для более точной работы рекомендуется запускать скрипт после как минимум суток аптайма.

Оригинальный скрипт написан под *nix, но на CodePlex доступна адаптированная версия для Win. Альтернативой можно назвать MySQL Performance Tuning Primer Script, который выдает не такую наглядную информацию, но зато более «разговорчивый» о проблемах.

 

Вывод

Это, конечно, далеко не все must have инструменты, которые должны быть под рукой у администратора баз данных. Но это, наверное, тот необходимый минимум, который следует изучить. Кроме того, в процессе знакомства начинаешь больше понимать механизмы, заложенные в MySQL.

xakep.ru

38. ОСНОВНЫЕ ОБЯЗАННОСТИ АДМИНИСТРАТОРА СУБД MYSQL

Главная » Информационные системы » Управление данными » 38. ОСНОВНЫЕ ОБЯЗАННОСТИ АДМИНИСТРАТОРА СУБД MYSQL

Общее администрирование

Общее администрирование включает в себя в основном работу с демоном mysqld, сервером MySQL и обеспечение доступа пользователей. К наиболее важным задачам общего администрирования относятся следующие.

  • Запуск и остановка сервера. Администратор должен уметь запускать и останавливать сервер вручную из командной строки и настраивать автоматический запуск и завершение работы. Важно также знать, как восстановить работу сервера в случае сбоя или некорректного функционирования.

Поддержка учетных записей пользователей. Администратор должен отчетливо понимать разницу между пользователямиMySQL и пользователями UNIX и Windows, а также уметь настраивать учетные записи пользователей MySQL. Такая настройка зачастую заключается в определении, какие пользователи и с какого компьютера смогут подключаться к серверу. Новым пользователям необходимо, кроме всего прочего, сообщить свои параметры подключения, чтобы успешно настроить обмен данными с сервером. Настройка учетных записей — это задача администратора, а не пользователей!

  • Поддержка регистрационных файлов. Администратор должен знать, регистрационные файлы каких типов необходимо проверять и поддерживать, а также каким образом и когда выполнять эти операции. Последовательный просмотр и замена регистрационных журналов позволит избежать переполнения ими используемых дисков.
  • Резервирование и копирование баз данных. Резервирование баз данных — исключительно важная операция, позволяющая в случае необходимости восстановить работу системы после сбоя. Желательно, конечно, чтобы имелась возможность восстановить базы данных до того состояния, в котором они находились перед сбоем. В этом случае потеря данных будет минимальной. Заметьте, однако, что резервирование баз данных отличается от резервирования информации всей системы, выполняемой, например, с помощью UNIX-программы dump. В процессе активной работы сервера файлы таблиц базы данных, как правило, подвергаются изменениям. Восстановление файлов, зарезервированных в какой-то определенный момент времени, не позволит в полной мере восстановить базу данных, т.е. потеря определенной части данных неизбежна. Более полезными для восстановления базы данных являются файлы, сгенерированные программой mysqldump. С ее помощью можно выполнять резервирование без предварительного завершения работы сервера.

Иногда возникает необходимость в запуске СУБД на более быстродействующем главном компьютере или в создании копии базы данных. В этом случае все содержимое ее каталога можно скопировать на другой компьютер. Администратор должен уметь выполнять и эту процедуру. Файлы баз данных могут зависеть от конфигурации конкретной системы, поэтому простое копирование файлов не сможет дать достаточно удовлетворительных результатов.

  • Настройка сервера. Пользователи всегда хотят, чтобы сервер работал максимально быстро. Самый быстрый и неэкономный метод повышения производительности сервера — приобретение и установка большего объема памяти и более быстрых дисков. Разбираться в работе сервера при применении подобных методов вовсе необязательно. Администратору необходимо знать, какие параметры применяются для настройки работы сервера и как их значения повлияют на ситуацию. Одни клиенты пользуются запросами в основном для выборки необходимой информации из баз данных, другие — в основном для добавления и обновления информации. Поэтому решение об изменении значений тех или иных параметров зачастую определяется типом запросов, отправляемых к узлу.
  • Установка нескольких серверов. В некоторых случаях возникает необходимость в запуске сразу нескольких серверов. Она может определяться желанием протестировать работу новой версии MySQL перед полным переходом на нее или обеспечить более высокий уровень защиты для отдельных групп и пользователей. (Последний вариант, в частности, относится к провайдерам услуг Internet.) В таких ситуациях администратор должен знать, как установить и настроить несколько одновременно работающих инсталляций.
  • Обновление MySQL. Новые версии MySQL появляются достаточно часто. Администратор должен знать, как обновить старую версию для устранения найденных ошибок программного кода и добавления новых возможностей. Следует также понимать, что иногда имеет смысл воздержаться от обновления, а также уметь выбирать между официальными и тестовыми версиями этого программного продукта.

Безопасность

В процессе инсталляции MySQL важно также обеспечить надежную защиту хранимых данных. Администратор MySQLполностью отвечает за предоставление доступа к каталогам данных и серверу и должен разбираться в следующих вопросах.

  • Защита файловой системы. В ОС UNIX могут поддерживаться несколько учетных записей пользователей, не обладающих полномочиями администратора MySQL. Необходимо проверить, чтобы эти пользователи не имели доступа к каталогам данных. Это позволит защититься от несанкционированного копирования или удаления таблиц баз данных либо чтения регистрационных файлов с критически важной информацией. Администратор должен знать, как настроить учетные записи пользователей UNIX для сервера MySQL, как сделать каталог данных доступным только для владельца и как определить привилегии пользователей сервера.
  • Защита сервера. Знание принципов работы системы безопасности MySQL поможет правильно настроить пользовательские учетные записи и полномочия доступа. Подключающиеся через сеть к серверу пользователи должны обладать правами доступа только к самой необходимой информации. Полное игнорирование системы безопасности может обернуться предоставлением прав администратора анонимному пользователю.

Отладка и поддержка баз данных

В душе каждый администратор MySQL надеется избежать повреждения или полного разрушения таблиц баз данных. Однако одних надежд мало. Выполнение определенных процедур позволит минимизировать риск сбоя и оказаться более подготовленным к негативному развитию событий.

  • Восстановление после сбоя. Сбой может разрушить результаты даже самых успешных действий, поэтому администратор должен обязательно знать, как отладить и восстановить таблицы баз данных. Восстановление после сбоя — это процесс, выполняемый весьма редко. Однако он очень неприятен и, как правило, сопровождается пребыванием администратора в стрессовом состоянии (которое может еще более усугубляться постоянными звонками и стуком в дверь.) Для восстановления применяются средства проверки и восстановления - isamchk иmyisamchk. Необходимо обязательно научиться восстанавливать информацию из резервных файлов и использовать записи регистрационных журналов для восстановления всех изменений, внесенных с момента последнего резервирования.
  • Превентивная поддержка. Для снижения вероятности повреждения или разрушения баз данных следует постоянно применять программы превентивной поддержки. Необходимо также выполнять и резервирование, хотя, конечно, выполнение мер превентивной поддержки снижает возможность их использования.

it-iatu.ru

Набор инструментов для администрирования MySQL и клонов

Практически любое современное клиент-серверное приложение не обходится без СУБД и в большинстве организаций обслуживание серверов баз данных лежит исключительно на плечах сисадмина. Штатные инструменты позволяют решить только базовые задачи и их функций не всегда достаточно. Утилиты сторонних разработчиков сделают администрирование MySQL и клонов, очень простым.

Интерфейс администрирования

MySQL и клоны по умолчанию распространяются без графического интерфейса. В самых простых случаях с несколькими базами для управления достаточно командной строки, когда же количество серверов, баз и админов их обслуживающих переваливает за десяток необходимость в GUI становится более очевидной. Oracle предлагает свою разработку — единый инструмент для разработчиков баз данных и администраторов MySQL Workbench(mysql.com/products/workbench) для Windows, Linux, Mac OS X. Это мощная среда с большими возможностями позволяющая визуально проектировать, создавать и управлять базами данных. Доступны все инструменты для настройки серверов, администрирования учетных записей, бэкапа и восстановления, аудита и простого мониторинга состояния. Также с его помощью можно легко выполнить миграцию с других СУБД — MS SQL Server, Sybase ASE, PostreSQL и другие. Возможности к тому же можно расширить при помощи плагинов. Интерфейс не локализован. Функций очень много поэтому некоторое время придется потратить чтобы освоиться, хотя вообщем среда удобная и все понятно. Версия Community (OSS) Edition распространяется по лицензии GNU GPL. Установка проблем не вызывает, доступны пакеты под разные дистрибутивы Linux, Windows и Mac OS X. Для пользователей RedHat/CentOS лучше воспользоваться в EPEL, в Ubuntu APT репозитарием разработчика(dev.mysql.com/downloads/repo/apt).

$ wget -c http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo dpkg -i mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo apt-get install mysql-workbench

$ wget -c http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo dpkg -i mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo apt-get install mysql-workbench

Очень популярен среди хостеров phpMyAdmin(phpmyadmin.net) позволяющий выполнить в интуитивной среде большинство операций по управлению базами данных, работе с таблицами, индексами, правами доступа, настройка репликации, экспорт информации, бэкап/восстановление, просматривать статистику и так далее. При этом остается возможность непосредственного ввода любых SQL запросов. Поддерживается управление несколькими серверами. Все достаточно интуитивно, и с администрированием может справиться пользователь без особой подготовки, с любого устройства где есть браузер. В Сети множество инструкций и примеров по использованию phpMyAdmin. Установка из репозитария пакетов проблем не вызывает, в качестве веб-сервера можно использовать не только Apache, но и более легкие nginx или lighttpd. Некоторые панели управления хостингом вроде cPanel и Plesk имеют поддержку phpMyAdmin.

Пользователи Windows наверняка оценят HeidiSQL(heidisql.com) поддерживающий управление MySQL, MS SQL и PostgreSQL (пока экспериментально) и распространяемый под OpenSource лицензией. Программа имеет очень удобный интерфейс, поддерживает подключение сразу к нескольким серверам, которые доступны в одном окне, это упрощает операции по экспорту/импорту данных. Доступно создание и редактирование баз, таблиц (и т.д.), управление привилегиями, экспорт таблиц (CSV, HTML, XML, SQL …), поиск, оптимизация, мониторинг. При написании запросов помогает автодополнение. Поддерживается командная строка, возможно подключение по SSH тоннелю. Есть Portable версия, используя Wine его можно запустить и в *nix/Mac OS X.Для тех кому не подошли описанные продукты в интернет можно найти большое количество аналогов — SQLyog(code.google.com/p/sqlyog), dbForge Studio for MySQL(devart.com/ru/dbforge/mysql/studio), TOra(torasql.com), SQL Buddy(sqlbuddy.com) и другие.

Утилиты мониторинга

Как и любое приложение СУБД требует постоянного наблюдения за своей работой, чтобы в случае проблем легко можно было найти узкое место. Общую информацию о работу MySQL можно получить при помощи стандартного клиента mysqladmin, запросы вроде SLOW QUERY LOG, SHOW PROCCESSLIST, SHOW VARIABLES, SHOW GLOBAL STATUS, и другие редко дают четкую картину информацию, так как медленные запросы есть всегда, но они не обязательно влияют на работу сервиса. Есть еще утилита mysqldumpslow которая анализует данные slow.log и выводит самые частые медленные запросы.Версия Enterprise предлагает специальный инструмент MySQL Enterprise Monitor, который предоставляет в реальном времени информацию о производительности и доступности всех баз данных MySQL. Кроме того для большинства систем мониторинга, включая OpenSource Nagios, Cacti, Zabbix, Ganglia доступны специальные плагины. Например, Nagios(nagios.com/solutions/mysql-monitoring). Каждый из плагинов должен быть правильно настроен, чтобы представить подробную информацию о том, что происходит в MySQL, а это не редко требует опыта. Разворачивать полноценную систему мониторинга в том случае когда задача только контроль СУБД, не всегда рационально. В этом случае на помощь приходят специализированные инструменты.К сожалению весьма популярный MyTOP(github.com/jzawodn/mytop) уже более двух лет не развивается (хотя это не значит что его нельзя использовать), но у него есть прекрасная и более функциональная замена. Начиная с версии MySQL 3.23.41 в состав InnoDB входит InnoDB Monitor innotop(code.google.com/p/innotop), некий аналог юниксовского top для этой СУБД выводящая в удобном виде информацию по внутреннему состоянию InnoDB, которая может пригодиться при настройке производительности. Вариантов запуска утилиты много. Самый простой выполнить от имени определенного пользователя без параметров:

$ innotop -u root -p password

$ innotop -u root -p password

По умолчанию подключение производится к локлаьному серверу, но можно указать любой узел или мониторить сразу несколько серверов. Список всех команд (Shift+клавиша) можно получить нажав клавишу вопроса. Например, Shift+Q выведет список всех текущих запросов. Параметр — write позволяет сохранить данные соединения в файл .innotop/innotop.conf:

Единственное неудобство по указанным утилитам, они показывают информацию в реальном времени, а о сохранении и последующем анализе статистических данных следует позаботиться самому.

Появившийся в 2009 году проект mycheckpoint(code.openark.org/forge/mycheckpoint) за несколько лет стал фактически стандартным инструментом решение для мониторинга MySQL. Причина популярности уникальный подход — для хранения и запроса используется база данных, в которую (одна операция INSERT) собираются данные о метриках мониторинга, статистики и переменных MySQL, информации об ОС Linux (состояние ОЗУ и swap, нагрузка и т.п.). Также в базу попадают результаты пользовательских запросов. Собранную информацию легко просмотреть при помощи простых SELECT запросов. При этом администратор получает наглядные графики (на основе Google Chart API), отчеты и метрики, которые генерируются на лету. Для вывода HTML отчетов может использоваться собственный веб-сервер. Также могут быть настроены предупреждения отсылаемые по email. Возможен мониторинг удаленной системы и нескольких серверов.Написан на Python, поэтому установка сложностей не вызывает. Разработчики предлагают deb, rpm и tar.gz пакет и сырцы.В Ubuntu следует ввести следующие команды:

$ sudo apt-get install python-mysqldb $ wget -с https://mycheckpoint.googlecode.com/files/mycheckpoint-231-1.deb $ sudo dpkg -i mycheckpoint-231-1.deb

$ sudo apt-get install python-mysqldb $ wget -с https://mycheckpoint.googlecode.com/files/mycheckpoint-231-1.deb $ sudo dpkg -i mycheckpoint-231-1.deb

После чего потребуется создать базу данных для хранения информации:

$ mysql -uroot -ppassword mysql> CREATE DATABASE mycheckpoint; mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'user'@'localhost' IDENTIFIED BY 'password';

$ mysql -uroot -ppassword mysql> CREATE DATABASE mycheckpoint; mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'user'@'localhost' IDENTIFIED BY 'password';

Для сбора и вывода данных используется утилита mycheckpoint, которую можно запускать вручную или через cron. Параметры подключения к MySQL и SMTP серверу указываются также в командной строке:

$ mycheckpoint --user=user --password=password --host=server --port=3306

$ mycheckpoint --user=user --password=password --host=server --port=3306

Или записываются в конфигурационный файл (по умолчанию /etc/mycheckpoint.cnf)

*/5 * * * * mycheckpoint --defaults-file=/root/mycheckpoint.cnf

*/5 * * * * mycheckpoint --defaults-file=/root/mycheckpoint.cnf

Теперь можем просматривать собранную информацию и генерировать отчеты при помощи SQL запросов.

$ mysql mycheckpoint -e "SELECT html FROM sv_report_html_brief" --silent --raw > ./checkpoint_report.html

$ mysql mycheckpoint -e "SELECT html FROM sv_report_html_brief" --silent --raw > ./checkpoint_report.html

Еще один полезный инструмент позволяющий контролировать, анализировать и при необходимости изменять обмен данными между MySQL сервером и клиентским приложением, называется MySQL Proxy(dev.mysql.com/downloads/mysql-proxy). Возможности у программы очень большие. Работает как под Windows, так и под *nix системами. Установка проблем не вызывает, в настройках необходимо указать порт MySQL (по умолчанию 3306) и PHP (строка mysql.default_port в php.ini). Все запросы формируются на языке Lua, документация здесь хорошо помогает.

Аудит MySQL

Одной из проблем связанных с эксплуатацией любого программного продукта является его неправильная настройка. После установки присутствуют лишние демонстрационные учетные записи, тестовые базы, сами пользователи могут использовать простые пароли, которые легко подобрать. Решить эти проблемы можно лишь при помощи постоянного аудита, который к тому же будет обязателен если производится обработка конфиденциальных/персональных данных (кредитные карты, медицинские записи, и т.д.), требуется создать среду соответствующую стандартам безопасности (SOX, HIPAA и т.д.), при расследовании инцидентов, устранении неполадок и т.д. После установки следует обязательно использовать mysql_secure_installation который обеспечивает минимальный набор позволяющих произвести коррекцию общих настроек безопасности.Далее уже следует использовать инструменты и скрипты о которых ниже.Задача аудита упрощается тем, что разработчики MySQL предлагают соответствующий API. Правда в MySQL плагин audit_log доступен только для версии Enterprise(dev.mysql.com/doc/refman/5.5/en/audit-log-plugin.html). Разработчики Percona Server предлагают GPL альтернативу(percona.com/doc/percona-server/5.5/management/audit_log_plugin.html) данному модулю, которую подходит для аудита MySQL и клонов. Две других альтернативы McAfee MySQL Audit Plugin(github.com/mcafee/mysql-audit) и MariaDB Audit Plugin for MySQL(mariadb.com/kb/en/mariadb-audit-plugin-117-release-notes) также справляются со своей задачей и позволяют производить аудит MariaDB, MySQL и Percona Server, но используют свой собственный формат журнала аудита, отличающийся от стандартного MySQL. Это потребует чуть больших первоначальных настроек. Применение плагинов простым назвать нельзя и подробно освещено в документации, которую все равно требуется прочитать, поэтому останавливаться не будем.Кроме того Патриком Карлссоном (Patrik Karlsson) представлен(seclists.org/nmap-dev/2011/q2/att-814/mysql-audit.nse) набор тестов для сетевого сканера nmap, позволяющий протестировать сервер на наличие основных проблем безопасности. В Ubuntu после установки настройки хранятся в каталоге /usr/share/nmap/nselib/data и nmap/script, для проверки сервера необходимо указать параметры подключения и учетную запись.

$ nmap -p 3306 1.1.1.1 --script mysql-audit --script-args "mysql-audit.filename='/usr/share/nmap/nselib/data/mysql- cis.audit' ,mysql-audit.username='root',mysql- audit.password='password'"

$ nmap -p 3306 1.1.1.1 --script mysql-audit --script-args "mysql-audit.filename='/usr/share/nmap/nselib/data/mysql- cis.audit' ,mysql-audit.username='root',mysql- audit.password='password'"

Хакер им воспользуется в любом случае, поэтому админ просто обязан периодически проверять сервера таким способом. Два пакета о которых следует рассказать отдельно также содержат инструменты аудита.

Percona Toolkit for MySQL

Штатные инструменты поставляемые с MySQL предоставляют лишь базовые возможности по администрированию, в результате многие операции приходится выполнять вручную. Это может быть проблемой, ведь уследить за всем очень сложно и часто потребуется определенный опыт, да и легко допустить ошибку. Пакет Percona Toolkit for MySQL(percona.com/software/percona-toolkit) собрал наработки двух проектов Maatkit и Aspersa и предоставляет скрипты позволяющие производить многие рутинные операции администрирования: проверить состояние репликации, аудит, собирать информацию, оптимизировать запросы, произвести тюнинг сервера, архивировать/восстанавливать данные и многое другое. Всего более 4000 тестов и настроек. Пакет доступен для основных дистрибутивов Linux (в Ubuntu пакет percona-toolkit). После установки получим 32 утилиты, имя которых начинается с pt-*, назначение часто понятно из названия. При запуске можно задавать различные фильтры и форматировать вывод. Поэтому документацию почитать все равно придется так как каждая утилита имеет большое количество параметров. Например, скрипт pt-summary выведет всю информацию по серверу собранную /proc/cpuinfo, /proc/meminfo, mount, df и другими утилитами, pt-show-grants — покажет все права пользователей СУБД, pt-query-digest позволяет строить отчеты основанные на анализе логов, обработанных сервером запросов, а также информации собранной processlist и tcpdump. Например, просмотр медленных запросов двумя способами:

$ pt-query-digest slow.log $ pt-query-digest --user=user --password=password --processlist --host=example.org

$ pt-query-digest slow.log $ pt-query-digest --user=user --password=password --processlist --host=example.org

Еще один популярный пакет Openark Kit(code.openark.org/forge/openark-kit) предлагает 14 утилит позволяющих провести тестирование СУБД: проверка установок, проверять пароли (пустые, одинаковые, слабые), блокировать аккаунты, прерывать запросы, фильтровать записи в журнале, выводить статус репликации, исправлять кодировки, и многое другое. Распространяется по лицензии BSD. Написан на Python и требует python-mysqldb. Для установки предлагается deb и rpm пакеты и сырцы, процесс стандартный и проблем не вызывает.Самый популярный скрипт комплекта oak-security-audit предназначенный для периодического аудита аккаунтов, паролей, привилегий и прочих настроек сервера.В общем случае его можно запустить без параметров. По умолчанию используется режим наибольшего уровня контроля системы (соотвествует —audit-level=strict):

$ oak-security-audit --socket=/var/run/mysqld/mysqld.sock --user=user --password=password

$ oak-security-audit --socket=/var/run/mysqld/mysqld.sock --user=user --password=password

В результате получим отчет, все что не помечено как Passed, требует пристального внимания.По умолчанию утилиты из Openark Kit (включая и mycheckpoint о котором выше, того же разработчика) используют по умолчанию для подключения к СУБД сокет /var/run/mysqld/mysql.sock (в это вшито в сам скрипт) в Ubuntu файл называется mysqld.sock. Чтобы не задавать каждый раз путь можно использовать заранее подкготовленный файл с настройками подключения и указывать при помощи —defaults-file. Как вариант изменить настройки MySQL в my.cnf. Править скрипты неудобно, так как при обновлении они работать не будут.Следующий скрипт oak-block-account очень популярен у разного рода хостеров, для временного отключения доступа к СУБД. Дело в том что стандартный механизм СУБД не позволяет отключать временно аккаунт (что-то вроде REVOKE login ON *.*) т.е. если учетная запись есть, пользователь всегда может подключаться к базе данных. Можно конечно использовать что-то вроде:

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USER'@'%';

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USER'@'%';

Но в случае восстановления прав, придется помнить все настройки. И главное если посмотреть права при помощи:

mysql> SHOW GRANTS FOR 'USER'; GRANT USAGE ON *.* TO 'USER'@'%' IDENTIFIED BY PASSWORD .....

mysql> SHOW GRANTS FOR 'USER'; GRANT USAGE ON *.* TO 'USER'@'%' IDENTIFIED BY PASSWORD .....

Мы убедимся, что такая команда не сбрасывает USAGE. Использование REVOKE USAGE фактически означает DROP USER. Проще изменить логин и пароль, но восстановление может быть проблемой. Вообщем возни и рисков много. В случае использования oak-block-account, учетная запись остается неизменной, ей просто задается временный пароль, поэтому подключиться с этой учетной записью нельзя.

$ oak-block-account --block --account-user=USER --account-host=example.org

$ oak-block-account --block --account-user=USER --account-host=example.org

Дополнительный параметр —kill, позволить сразу сбросить все активные подключения. Восстановить работоспособность учетки также просто. Смотрим список аккаунтов и их статус:

$ oak-block-account --list

$ oak-block-account --list

И включаем учетную запись:

$ oak-block-account --release --account-user=USER --account-host=example.org

$ oak-block-account --release --account-user=USER --account-host=example.org

Другие скрипты из Openark Kit позволяют упростить некоторые операции. Например oak-chunk-update дает возможность выполнить большие операции UPDATE/DELETE без длительных блокировок, разбив задачу на небольшие куски. Скрипт oak-show-replication-status выводит состояние репликации, oak-kill-slow-queries — удалить выполняющиеся запросы выполняющиеся уже долго время, oak-repeat-query — выполняет запрос пока не выполняется определенное условие (количество итераций, время).

Тюнинг MySQL

Оптимизация настроек очень тонкий процесс, ведь нужно на основании собранной статистики изменить только то что действительно повлияет на производительность. Самым известным инструментом для MySQL является Perl скрипт [mysqltuner](mysqltuner.com), который доступен в репозитариях большинства дистрибутивов Linux. Он читает текущие настройки сервера и установки MySQL, после чего выдает рекомендации (только рекомендации) по их изменению. Если установка производилась при помощи пакетов то достаточно ввести имя скрипта, иначе следует вызывать указывая интерпретатор:

Далее будут запрошены логин и пароль администратора, после чего мы получим метрики системы и рекомендации. Кроме этого mysqltuner показывает информацию о индексах в таблицах и фрагментации, которые также влияют на скорость работы сервера. В случае необходимости получим рекомендации произвести перестановку индексов и дефрагментацию. Для более точно работы рекомендуется запускать скрипт после как минимум 24 часа аптайма.Оригинальный скрипт написан под *nix, но на Codeplex(mysqltuner.codeplex.com) доступна адаптирована для Win.Альтернативой можно назвать MySQL Performance Tuning Primer Script(day32.com/MySQL/tuning-primer.sh), который выдает не сколько наглядную информацию, но зато больше «разговорчивый» о проблемах.

Вывод

Это конечно далеко не все must have инструменты, которые должны быть под рукой у администратора баз данных. Но это наверное тот необходимый минимум которые следует изучить, кроме того в процессе знакомства начинаешь больше понимать в механизмах заложенных в MySQL.

www.tux.in.ua

консольные команды для администрированя mysql сервера

Когда речь идет об администрировании Mysql сервера, каждый представляет что-то свое.Программисту удобней работать и управляться с базами данных через какое-нибудь веб приложение, например phpMyAdmin или через графический Windows клиент, например Navicat. Администратору-же, зачастую приходится обходиться командной строкой, консольным клиентом mysql и различными утилитами командной строки, идущими в стандартной поставке Mysql сервера.В данном материале попытаюсь коротко рассказать о командах, которыми пользуюсь сам, для решения тех или иных задач, возникающих в процессе настройки сервера.

Все нижесказанное будет происходить в контексте операционной системы FreeBSD 8.0.

Небольшая ремарка насчет постоянного упоминания мной, FreeBSD.В процессе написания, я стараюсь вживую проверять команды, которые пишу, а поскольку Unix системы, расплодились нынче в большом количестве, наборы команд, программ и утилит а так-же опций команд, могут значительно различаться и то что работает во FreeBSD, может не работать в каком-нибудь дистрибутиве Linux. Поэтому мне кажется не будет лишним указать, в какой именно unix системе, это работает точно.На самом деле адаптировать все это под любую другую Unix систему не сложно, всегда можно найти аналог программы, или глянуть man руководство, что-бы уточнить использование опций.

Для начала, как восстановить пароль Mysql пользователя root

Бывает, попадет в руки сервер, а пароль для пользователя root, уже никто не помнит.Это решается довольно просто, причем вариантов решения несколько.Во-первых, можно запустить демон Mysql сервера с опцией командной строки, --skip-grant-tables или прописать параметр skip-grant-tables в конфигурационный файл сервера, my.cnf. При таком запуске, Mysql сервер, проигнорирует таблицу привилегий, и все базы данных, в том числе и системные, будут доступны для изменения, без каких-либо привилегий. В этом случае оператор SET PASSWORD, можно выполнить любым пользователем, для любого пользователя, в том числе root.Выполняем:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_pass')\g Query OK, 0 rows affected (0.00 sec)

альтернативная последовательность команд:

mysql> use mysql; mysql> update user set password=PASSWORD("newpassword") where user='root' and host='localhost'; mysql> flush privileges;

перезапускаем сервер без опции --skip-grant-tables и пробуем подключиться.Второй вариант, это воспользоваться внешней утилитой из стандартного комплекта Mysql сервера, mysqladmin.

freebsd8 /# mysqladmin -u root password "new_pass" # установит новый пароль freebsd8 /# mysqladmin -u root password "" # удалит старый пароль

Второй вариант вариант конечно проще.

Консольный клиент mysql

В поставке Mysql сервера, всегда присутствует одноименный консольный клиент - программа mysql.Что она умеет. Да практически все, что необходимо для полноценной настройки и обслуживания Mysql сервера. Опишу манипуляции и команды, которые приходится делать чаще всего.При запуске, программа-клиент подключается к серверу с текущим именем системного пользователя, например:

freebsd8 /# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 138 Server version: 5.5.2-m2-log FreeBSD port: mysql-server-5.5.2 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

такой вариант запуска возможен, если для пользователя mysql - root, не установлен пароль ( поведение по умолчанию ).

Не путайте пользователя root, Mysql сервера, с системным пользователем root.

Запуск клиента mysql с ключом --help, выведет довольно внушительный список возможных опций программы.Итак, список команд, используемых наиболее часто с краткими пояснениями:

Далее в примерах, ключ \g ( go ), это указание Mysql выполнить команду, пока он не указан, клиент будет переходить на новую строку, ожидая дальнейшего ввода или ключа \g ( как альтернативу можно использовать символ ; – точка с запятой ). Еще один полезный вариант \G, это вертикальный вывод данных, очень удобно, если например в таблице много колонок и они не умещаются на ширину экрана. Полный список ключей можно посмотреть введя ключ \h ( help ).

SHOW [ GLOBAL ] VARIABLES Вывести список системных переменных Mysql сервера. Переменные могут быть глобальные ( GLOBAL ) и сессионные ( SESSION ). Если не указано, какого именно типа, переменные нужно вывести, будут выведены сессионные переменные SHOW [ GLOBAL ] VARIABLES LIKE '%часть_имени_переменной%' Более удобный вариант команды. Знак процента, является шаблоном и соответствует любым символам. Например: mysql> SHOW VARIABLES LIKE 'colla%'\g +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | +----------------------+-----------------+ 3 rows in set (0.00 sec) mysql> SHOW VARIABLES LIKE 'colla%tabase'\g +--------------------+-----------------+ | Variable_name | Value | +--------------------+-----------------+ | collation_database | utf8_general_ci | +--------------------+-----------------+ 1 row in set (0.00 sec) mysql> SHOW VARIABLES LIKE 'collation_database'\g +--------------------+-----------------+ | Variable_name | Value | +--------------------+-----------------+ | collation_database | utf8_general_ci | +--------------------+-----------------+ 1 row in set (0.00 sec)

последний и предпоследний варианты, выводят одно и то-же.

SET [ GLOBAL ] имя_переменной=значение | имя_переменной=DEFAULT Оператор SET, устанавливает значение переменной. Имейте в виду, не все переменные можно изменить через консольный клиент, многие инициализируются при запуске Mysql сервера, с помощью соответствующих опций командной строки или через установку в файле конфигурации my.cnf. При попытке изменить значение такой переменной, будет выведено сообщение об ошибке.Что-бы переменная приняла значение по умолчанию, можно в качестве значения использовать ключевое слово DEFAULT.Как и в случае с командой SHOW, если не указан тип переменной, значение будет установлено для сессионной ( локальной ) переменной. Следующий пример, демонстрирует это поведение более наглядно: # Выводим значение локальной переменной mysql> SHOW VARIABLES LIKE 'max_join_size'\g +---------------+----------------------+ | Variable_name | Value | +---------------+----------------------+ | max_join_size | 18446744073709551615 | +---------------+----------------------+ 1 row in set (0.00 sec) # Выводим значение глобальной переменной mysql> SHOW GLOBAL VARIABLES LIKE 'max_join_size'\g +---------------+----------------------+ | Variable_name | Value | +---------------+----------------------+ | max_join_size | 18446744073709551615 | +---------------+----------------------+ 1 row in set (0.00 sec) # Как видите в данный момент значения идентичны # Теперь установим новое значение: mysql> SET max_join_size=111111111111111111\g Query OK, 0 rows affected (0.00 sec) # Снова посмотрим значения для локального и глобального контекстов: mysql> SHOW VARIABLES LIKE 'max_join_size'\g +---------------+--------------------+ | Variable_name | Value | +---------------+--------------------+ | max_join_size | 111111111111111111 | +---------------+--------------------+ 1 row in set (0.00 sec) mysql> SHOW GLOBAL VARIABLES LIKE 'max_join_size'\g +---------------+----------------------+ | Variable_name | Value | +---------------+----------------------+ | max_join_size | 18446744073709551615 | +---------------+----------------------+ 1 row in set (0.01 sec) # Глобальное значение осталось неизменным, в то время как локальное соответствует тому, которое мы задали. # Ну и вернем значение по умолчанию: mysql> SET max_join_size=DEFAULT\g Query OK, 0 rows affected (0.00 sec) mysql> SHOW VARIABLES LIKE 'max_join_size'\g +---------------+----------------------+ | Variable_name | Value | +---------------+----------------------+ | max_join_size | 18446744073709551615 | +---------------+----------------------+ 1 row in set (0.00 sec) mysql> SHOW GLOBAL VARIABLES LIKE 'max_join_size'\g +---------------+----------------------+ | Variable_name | Value | +---------------+----------------------+ | max_join_size | 18446744073709551615 | +---------------+----------------------+ 1 row in set (0.01 sec) SHOW [ GLOBAL ] STATUS [ LIKE '%имя_переменной%' ] Выведет статусные переменные ( счетчики ) с их значениями.Поведение с ключевым словом GLOBAL и без него, аналогично команде SHOW VARIABLES. SHOW DATABASES Вывести список существующих баз данных USE имя_базы_данных Перейти в базу данных имя_базы_данных, сделав ее текущей SHOW TABLES [ FROM имя_базы_данных ] Если не указана конструкция FROM, выведет список таблиц в текущей базе данных. CHECK TABLE имя_таблицы [ FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED ] Проверка таблицы на предмет ошибок в различных режимах. OPTIMIZE TABLE имя_таблицы Оптимизация таблиц. REPAIR TABLE имя_таблицы Попробовать отремонтировать таблицу.Этот оператор тоже имеет несколько опций, но в обычном случае достаточно простого REPAIR TABLE. Если для ремонта таблиц, вдруг надумаете использовать дополнительные опции, советую сначала ознакомиться с документацией по их применению и возможным последствиям.) SELECT user, host FROM mysql.user Это обычный SQL запрос к таблице user системной базы данных mysql, в результате которого будет выведен список всех существующих пользователей и хостов. CREATE USER 'user'@'localhost' IDENTIFIED BY 'password' Создать пользователя mysql с именем user для хоста localhost, то есть только для локального подключения, с паролем password.В Mysql можно ограничить пользователя, разрешив ему подключаться только с определенного хоста, это может быть как IP адрес, так и доменное имя. Если при создании, указывается только имя пользователя, то есть такой вариант команды - CREATE USER boom , в качестве хоста назначается шаблон %, означающий, что данный пользователь может соединяться с Mysql сервером откуда угодно. Кроме того, для данного пользователя будет задан пустой пароль.Если есть такая возможность, в целях безопасности, лучше ограничивать пользователей по IP адресам. RENAME USER 'user'@'host' TO 'user2'@'host' Переименовать пользователя. Не работает в старых версиях Mysql ( не помню точно с какой версии появилась ).Если в имени назначения опустить имя host, будет присвоен шаблон %, то есть любой. DROP USER имя_пользователя Удалить пользователя. SET PASSWORD FOR 'user'@'host' = PASSWORD('password') Назначить или изменить пароль пользователя. То-же самое можно сделать с помощью SQL оператора UPDATE , изменив поле Password в системной таблице User, для определенного пользователя. mysql> UPDATE mysql.user SET password= PASSWORD('secret') WHERE user='user' AND host='localhost'\g Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> FLUSH PRIVILEGES\g Query OK, 0 rows affected (0.02 sec)

Кроме того, пароль пользователя можно задать при назначении привилегий, в операторе GRANT ( см. ниже ).

GRANT ALL ON data\_base.* TO 'user'@'host' [ IDENTIFIED BY 'secret' ] Назначает права пользователю.В Mysql достаточно гибкая система привилегий, имеющая несколько уровней, глобальный, уровень базы данных,уровень таблицы и уровень столбца.Для меня, приведенный выше вариант, является самым распространенным. Мы назначаем все права ( кроме GRANT OPTION - право управлять правами других пользователей ), на все таблицы базы данных data_base ( обратите внимание, если в имени базы данных присутствует знак подчеркивания, его нужно экранировать обратным слешем ), для пользователя user с хостом host.При указании конструкции IDENTIFIED BY 'secret', пользователю будет назначен пароль 'secret', если у пользователя уже был установлен пароль, он будет заменен на 'secret'.Еще один типичный пример, назначение прав пользователю, для создания резервных копий данных: mysql> GRANT SELECT, LOCK TABLES ON *.* to 'backup'@'localhost'\g

Тема привилегий Mysql, довольно объемна и ее освещение не входило в мои планы. Если вам понадобится более плотно работать с привилегиями, рекомендую почитать официальную документацию.

REVOKE ALL ON *.* FROM 'user'@'host' Противоположность предыдущей команды, отнимает права пользователя. SHOW GRANTS FOR 'user'@'host' Просмотр существующих привилегий пользователя mysql. Например, у только что созданного пользователя, будут такие привилегии: mysql> SHOW GRANTS FOR 'vasya'@'%'\g +---------------------------------+ | Grants for [email protected]% | +---------------------------------+ | GRANT USAGE ON *.* TO 'vasya'@'%' | +---------------------------------+ 1 row in set (0.00 sec)

USAGE -это привилегии по умолчанию, означает отсутствие каких-либо привилегий.

# выдадим пользователю некоторые права mysql> GRANT SELECT, LOCK TABLES ON *.* to 'vasya'@'%'\g Query OK, 0 rows affected (0.00 sec) # Проверяем mysql> SHOW GRANTS FOR 'vas'@'%'\g +-----------------------------------------------+ | Grants for [email protected]% | +-----------------------------------------------+ | GRANT SELECT, LOCK TABLES ON *.* TO 'vas'@'%' | +-----------------------------------------------+ 1 row in set (0.00 sec) DESCRIBE имя_таблицы Выводит информацию по указанной таблице, имена колонок, типы данных и т.д.Это укороченный вариант команды SHOW COLUMNS FROM. Можно укоротить вообще до DESC. CREATE DATABASE имя_базы_данных Создать базу данных.При необходимости можно указать кодировку, например, CHARACTER SET utf8 и сравнение COLLATE utf8_bin, в данном случае речь идет о кодировке UTF8. DROP DATABASE имя_базы_данных Удалить базу данных. ALTER TABLE имя_таблицы ENGINE=InnoDB У оператора ALTER масса различных ключей, но в процессе администрирования сервера ( то есть не администрирования какого-то конкретного веб приложения ), я его применяю для смены движка MyISAM на InnoDB для некоторых таблиц. DROP TABLE имя_таблицы Удалить таблицу. FLUSH PRIVILEGES Перезагрузить системную таблицу привилегий.Mysql сервер кэширует в память результат выполнения таких операторов как: CREATE USER, GRANT, CREATE SERVER, INSTALL PLUGIN, и не освобождает память при выполнении обратных вариантов команд: DROP USER, REVOKE, DROP SERVER, UNINSTALL PLUGIN. FLUSH HOSTS Очищает кэш хостов, например если у хоста сменился IP адрес или если вдруг появилось сообщение: Host 'имя_хоста' is blocked.

Вроде все. Уточню, что это нельзя назвать администрированием mysql в полном смысле.. то есть я не имею дела со структурой таблиц и связей, если конечно не занимаюсь этим для себя. В большинстве случаев работа в консольном клиенте сводится к "создать юзера, создать базу, выставить права".

vds-admin.ru

НОУ ИНТУИТ | Администрирование MySQL

 

Форма обучения:

дистанционная

Стоимость самостоятельного обучения:

бесплатно

Доступ:

свободный

Документ об окончании:

Уровень:

Специалист

Длительность:

16:03:00

Выпускников:

529

Качество курса:

4.18 | 4.08

Курс рассматривает вопросы администрирования MySql: от основных обязанностей администратора до аспектов резервирования и восстановления базы данных.

Этот курс посвящен рассмотрению различных аспектов администрирования MySQL. В нём представлена исчерпывающая информация обо всех основных вопросах, которыми необходимо владеть для успешного выполнения задач по администрированию MySQL. Рассмотрены все основные обязанности администратора и даны инструкции по их выполнению.

Теги: .net, CNF, GNR, html, innodb, ISAM, myisam, mysql, reload, REVOKE, sql, xml, администрирование, базы данных, безопасность, журнал обновлений, история, каталоги, клиенты, командная строка, поддержка, подчиненный сервер, привилегия доступа, серверы, утилиты

Предварительные курсы

Дополнительные курсы

 

2 часа 30 минут

-

Введение в администрирование MySQL Эта лекция является вводной. В ней представлено описание всех основных вопросов,которыми необходимо владеть для успешного выполнения задач по администрированию инсталляцией MySQL. Она же включает краткий обзор всех обязанностей администратора

-

Общее администрирование MySQL В лекции рассмотрены общие задачи администратора, инсталляция MySql, методы и параметры запуска и завершения работы сервера MySql.

-

Проверка и восстановление таблиц В этой лекции рассказывается о том, как предотвратить катастрофу и как устранить ее последствия, если все же случилось непоправимое. Рассматриваются вопросы поиска повреждений в таблицах и их восстановления, а также методы создания резервных копий и последующей работы с ними.

-

Виды таблиц и способ их хранения В этой лекции рассказывается о том, какие виды таблиц существуют в MySQL и как организуется физическое хранение данных и способ представления этих таблиц на жестком диске.

-

Каталог данных MySQL Лекция рассматривает вопросы управления размещением дискового пространства системы.

-

Оптимизация В лекции объясняется, когда и как нужно оптимизировать базы данных. Кроме того, затрагиваются проблемы перекомпиляции ядра MySql.

-

Безопасность В этой лекции основное внимание уделяется действиям администратора, направленным на поддержание безопасности и целостности инсталляции MySQL

-

Концепции распределенных баз данных В этой лекции рассматриваются концепции распределенных баз данных, вопросы репликации данных и синхронизации баз. Также здесь рассказывается о том, как запустить несколько серверов MySQL на одном компьютере.

-

Расширение возможностей В этой лекции рассматриваются способы расширения функциональных возможностей сервера MySQL. Сюда входит написание собственных функций и процедур, а также создание наборов символов. Описываются также средства отладки, имеющиеся в MySQL.

-

www.intuit.ru