Mysql утилиты для mysql


Как установить mysql-utilities в Ubuntu / Debian

Установка:

Для установки mysql-utilities в Ubuntu / Linux Mint / Debian, введите в Терминал :

Подробная информация о пакете:

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

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

Утилиты MySQL предназначены для упрощения работы с серверами. Это часть MySQL Workbench.

Этот пакет предоставляет следующие утилиты:

mysqlauditadmin: вести журнал аудита
mysqlauditgrep: поиск журнала аудита
mysqlbinlogmove: перемещать файлы binlog в другое место
mysqldbcompare: проверьте две базы данных и определите любые различия
mysqldbcopy: копировать базы данных с одного сервера MySQL на другой
mysqldbexport: экспортировать список баз данных в различных форматах
mysqldbimport: определение объектов импорта или данных в базу данных
mysqldiff: определить различия между объектами базы данных
mysqldiskusage: показать использование диска для одной или нескольких баз данных
mysqlfabric: структура управления фермой серверов
mysqlfailover: автоматический мониторинг работоспособности репликации и переход на другой ресурс
mysqlfrm: показать CREATE TABLE из .frm файлов
mysqlgrants: утилита отображения привилегий
mysqlindexcheck: проверьте наличие избыточных или повторяющихся индексов
mysqlmetagrep: поиск серверов MySQL для объектов, соответствующих шаблону
mysqlprocgrep: поиск серверов MySQL для процессов, соответствующих шаблону
mysqlreplicate: настройка репликации между двумя серверами MySQL
mysqlrpladmin: утилита администрирования для репликации MySQL
mysqlrplcheck: проверить условия для репликации
mysqlrplms: установить топологию репликации с несколькими источниками
mysqlrplshow: показать подчиненные, прикрепленные к мастеру
mysqlrplsync: проверить согласованность данных между master и slaves
mysqlserverclone: ​​запустите новый экземпляр существующего сервера MySQL
mysqlserverinfo: отображение общей диагностической информации с сервера
mysqluc: клиент командной строки для запуска MySQL Utilities
mysqluserclone: ​​скопировать пользователя MySQL на новых пользователей на другой сервер

Mysql утилиты для mysql

Утилита командной строки mysql является простой SQL-оболочкой (с возможностями библиотеки readline проекта GNU). Она поддерживает интерактивный и неинтерактивный режимы. В интерактивном режиме результаты запроса представляются в ASCII-формате. При использовании в неинтерактивном режиме (например, в качестве фильтра) результат представляется в текстовом формате с символом табуляции в качестве разделителя (выходной формат можно изменить при помощи параметров командной строки). Сценарии можно запускать, как показано ниже:

Если возникают проблемы из-за недостатка памяти на данном клиенте, применяйте параметр —quick ! Это заставит mysql использовать функцию mysql_use_result() вместо функции mysql_store_result() для получения результирующей выборки данных.

Использовать mysql очень легко. Запустите mysql database или mysql —user=user_name —password=your_password databas e. Наберите SQL-команду прямо в командной строке, завершив ее одним из символов: `;’ , `\g’ или `\G’ , и нажмите клавишу «Ввод».

Утилита командной строки mysql поддерживает следующие параметры:

-?, —help Вывод справочной информации об использовании программы и выход из нее. -A, —no-auto-rehash Отключает автоматическое рехеширование. rehash следует использовать для получения хеша таблиц и полей. Это обеспечивает более быстрый старт mysql . —prompt=. Устанавливает приглашение на ввод команд в заданном формате. -b, —no-beep Выключает звуковой сигнал об ошибке. -B, —batch Выводит результаты в пакетном режиме с символом табуляции в качестве разделителя, каждая строка с новой строки. Файл истории не используется. —character-sets-dir=. Директория, где находятся наборы символов. -C, —compress Использовать сжатие данных в протоколе сервер/клиент. -#, —debug[=. ] Журнал отладки. Значение по умолчанию — ‘d:t:o,/tmp/mysql.trace’. -D, —database=. Имя используемой базы данных. Большей частью применяется в конфигурационном файле `my.cnf'. —default-character-set=. Установить набор символов по умолчанию. -e, —execute=. Выполнить команду и завершить программу (вывод результата как и для —batch ). -E, —vertical Вывести результаты запроса (строки) по вертикали. Можно произвести вывод подобным образом и без данного параметра, завершая команды символами \G . -f, —force Продолжать обработку даже при обнаружении ошибки SQL. -g, —no-named-commands Выключает именованные команды. Следует использовать только команды вида \* либо применять именованные команды только в начале строки, заканчивающейся символом `;’ . Начиная с версии 10.9 клиент запускается с этой опцией, включенной по умолчанию! С опцией -g , однако, длинные команды все еще работают с первой строки. -G, —enable-named-commands Разрешает именованные команды. Допускаются длинные команды, а также укороченные команды вида \*. -i, —ignore-space Игнорировать пробел после имен функций. -h, —host=. Подсоединиться к базе данных на указанном хосте. -H, —html Вывести выходные данные в виде HTML. -L, —skip-line-numbers Не указывать номера строк для ошибок. Полезно для сравнения результирующих файлов, включающих сообщения об ошибках. —no-pager Блокирует пейджер (программа постраничного вывода) и выводит результат в стандартный вывод stdout (в Unix). Смотрите также команду \ h (интерактивная помощь). —no-tee Блокирует выходной файл. Смотрите также команду \h (интерактивная помощь). -n, —unbuffered Очищать буфер после каждого запроса. -N, —skip-column-names Не указывать имена столбцов в результатах. -O, —set-variable var=option Установить значение переменной. Список используемых переменных выводится через —help . -o, —one-database Обновить только базу данных, установленную по умолчанию. Позволяет пропускать обновления другой базы данных в журнале обновления. —pager[=. ] Устанавливает тип данных вывода. По умолчанию это переменная окружения PAGER . Ее возможные значения — less, more, cat [> имя файла], и т.д. См. также команду \h (интерактивная помощь). Этот параметр не работает в пакетном (batch) режиме. Пейджер работает только под Unix. -p[password], —password[=. ] Пароль, используемый при подсоединении к серверу баз данных. Если в командной строке пароль не указан, то он запрашивается у пользователя. При использовании краткой формы -p не оставляйте пробел между параметром и значением пароля. -P —port=. Номер порта TCP/IP, используемый для подсоединения. -q, —quick Не кэшировать результат. Выводить его строка за строкой так, как он приходит от сервера. Это может замедлить скорость работы сервера, если вывод результата будет приостановлен. Файл истории не используется. -r, —raw Показывать значения столбцов без какого-либо преобразования. Используется с —batch . -s, —silent Режим молчания. Выводить только сообщения об ошибках. -S —socket=. Файл сокета, используемый для подсоединения. -t —table Выводить результат в табличном формате. Установлено по умолчанию для непакетного режима. -T, —debug-info Выводить некоторые отладочные данные при выходе из программы. —tee=. Присоединить что-либо к выходному файлу. Смотрите также команду \h (интерактивная помощь). Этот параметр не работает в пакетном режиме. -u, —user=# Имя пользователя MySQL, если этот пользователь не является активным в данное время. -U, —safe-updates[=#], —i-am-a-dummy[=#] Разрешает выполнять только операции UPDATE и DELETE , используя ключи. Более полная информация об этом параметре приведена ниже. Можно сбросить данный параметр, установив в конфигурационном файле `my.cnf' значение аргумента —safe-updates=0 . -v, —verbose Более расширенный режим вывода результатов ( -v -v -v дает формат вывода таблицы). -V, —version Вывод информации о версии и выход из программы. -w, —wait Если соединение с сервером упало, подождать и попытаться восстановить его, вместо того, чтобы прервать работу.

Через параметры командной строки -O или —set-variable можно также установить следующие переменные:

Имя переменной По умолчанию Описание
connect_timeout Число секунд до истечения времени ожидания соединения
max_allowed_packet 16777216 Максимальная величина пакета, посылаемого/принимаемого с сервера
net_buffer_length 16384 Размер буфера для TCP/IP и сокетного соединения
select_limit 1000 Автоматическое ограничение количества команд SELECT при использовании —i-am-a-dummy
max_join_size 1000000 Автоматическое ограничение количества связанных строк при использовании —i-am-a-dummy.

Если ввести в командной строке help , программа mysql выведет список поддерживаемых ею команд:

Команда pager работает только под Unix.

Команда status дает информацию о текущем соединении и используемом сервере. Если вы работаете в режиме —safe-updates , команда status также выведет значения переменных для mysql , которые влияют на ваши запросы.

Для начинающих рекомендуется пользоваться программой mysql с установленным параметром (введен в MySQL 3.23.11) —safe-updates (или —i-am-a-dummy для пользователей, выполнивших DELETE FROM table_name , но забывших указать аргументы в WHERE ). В этом случае mysql при установлении соединения посылает следующую команду MySQL-серверу:

где #select_limit# и #max_join_size# — переменные, которые можно установить из командной строки mysql. See section 5.5.6 Синтаксис команды SET .

Результат этого следующий:

  • Не разрешено выполнять команды UPDATE или DELETE , если не указаны ограничения по ключам в секции WHERE . Однако можно заставить выполняться команды UPDATE / DELETE , используя оператор LIMIT :
  • Все слишком большие результаты ограничены строками #select_limit# .
  • SELECT ы, которые могут потребовать для исполнения количество комбинаций строк более, чем #max_join_size# , будут прерваны.

Несколько полезных советов по использованию клиента mysql :

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

  • Для входа в систему можно использовать опции команды tee. Она может быть запущена с помощью параметра —tee=. для mysql или интерактивно из командной строки вводом команды tee . Все представляемые на экране данные будут также добавлены к заданному файлу. Это может быть очень полезно для целей отладки программы. Утилиту tee можно блокировать из командной строки командой notee . Повторный запуск команды tee снова включит журналирование. Если при этом параметр для команды tee не указан, то будет использоваться предыдущий файл. Следует учесть, что команда tee будет записывать результаты в файл после каждой выполненной команды, как раз перед появлением командной строки для ввода очередной команды.
  • При помощи опции —pager[=. ] стал возможным просмотр или поиск результатов в интерактивном режиме с помощью Unix-программ less , more или иных подобных. Если явно не указать аргумент в этом параметре, клиент mysql будет искать переменную окружения PAGER и установит значение pager . Программу pager также можно запустить из интерактивной командной строки командой pager и остановить командой nopager . Команда может принимать аргумент, который является необязательным; pager будет установлена в значение этого аргумента.. Команда pager может быть вызвана и без аргумента, но это требует использования опции —pager или соответствующей установки по умолчанию стандартного вывода stdout . Команда pager работает только в Unix, поскольку использует функцию popen() , отсутствующую в Windows. Вместо этого в Windows можно использовать параметр tee , хотя в ряде ситуаций это менее удобно, чем применение команды pager .
  • Несколько советов касательно команды pager : Ее можно использовать для записи в файл: и результаты будут направлены только в файл. Вызываемые командой pager программы могут принимать любые допустимые опции: Обратите особое внимание на опцию -S в вышеприведенном примере. Она может быть очень полезна при просмотре результатов. Попробуйте применить ее с горизонтальным выводом (завершайте команды символами ‘\g’, or ‘;’) и с вертикальным (в конце команд — ‘\G’). Очень громоздкие результаты вывода иногда трудно бывает прочесть с экрана, в этом случае команда less с опцией -S позволит просмотреть результаты в интерактивном режиме слева направо, при этом при появлении строк с длиной больше, чем ширина экрана, их вывод будет продолжен вывод с новой строки. Вывод данных в таких случаях получается более удобочитаемым. При интерактивном вызове команды less с опцией ‘-S’ можно переключать режим ее работы (включено/выключено) из командной строки. Чтобы получить дополнительную информацию относительно less, обращайтесь к описанию команды ‘h’.
  • В заключение отметим (если вы этого еще не поняли из предыдущих примеров), что существует возможность комбинировать очень сложные способы обработки результатов. Так, в следующем примере результаты будут посланы в два различных каталога, смонтированных на двух различных жестких дисках в /dr1 and /dr2, и, несмотря на это, результаты можно увидеть на экране посредством команды less:
  • Приведенные выше функции можно тоже комбинировать: запустив tee и установив pager в less , можно просматривать результаты с помощью Unix-команды less и при этом одновременно производить запись в файл. Разница между служебной Unix-утилитой tee , используемой в программе pager , и встроенной в клиент mysql командой tee заключается в том, что встроенная команда tee работает даже в том случае, если в Unix утилита tee недоступна. Встроенная команда tee также ведет запись всего, что выводится на экран, тогда как утилита Unix tee , используемая с pager , не делает этого в достаточном объеме. Последнее, но тем не менее важное обстоятельство состоит в том, что интерактивная команда tee более удобна для переключения режимов работы включено/выключено, если при записи в файл иногда возникает необходимость отключить эту функцию.

Можно изменить формат приглашения в командной строке клиента mysql .

Возможны следующие опции приглашения:

Опция Описание
\v версия mysqld
\d имя используемой базы данных
\h имя хоста, к которому производится подсоединение
\p номер порта, через который производится подсоединение
\u имя пользователя
\U полный адрес username@host
\\ обратный слэш `\’
\n символ новой строки
\t табуляция
\ пробел
\_ пробел с подчеркиванием
\R время по военному часовому поясу (0-23)
\r время по стандартному часовому поясу (1-12)
\m минуты
\y два разряда года
\Y четыре разряда года
\D полный формат даты
\s секунды
\w день недели в трехбуквенном формате (Mon, Tue, . )
\P Время до полудня/после полудня (am/pm)
\o месяц в числовом формате
\O месяц в трехбуквенном формате (Jan, Feb, . )
\c Счетчик, подсчитывающий количество вводимых команд

Символ `\’ за которым следует любая другая буква, просто дополняет эту букву.

Установить параметры приглашения можно следующими способами:

Программа для Убунты для работы с MySQL

Какую программу посоветуете для работы с БД MySQL для убунты 10,04? чтоб была похожа на SQL Manager Lite for MySQL

5 ответов 5

Не знаю что такое «SQL Manager Lite», но в комплекте убунты и так уже есть прекрасные средства администрирования MySQL.

  1. команда mysql. Учите ее параметры. Для поднятия сервера после падения это возможно единственный вариант.
  2. mysqladmin. Также консольная, но архи-полезная утилита. Тоже идет сразу в комплекте с mysql
  3. phpMyAdmin. Веб-панель для управления MySQL. Требует дополнительно Web-сервер и PHP. Установить дополнительно не проблема, но обычно является стандартным компонентом (L)AMP.

А чем консольный » mysql -u -p » не устраивает?

MySQL Workbench — довольно удобная программа для администрирования MySql с графическим интерфейсом.

Советую использовать Valentina Studio, это лучший бесплатный инструмент под linux, windows и Mac OX S

Всё ещё ищете ответ? Посмотрите другие вопросы с метками mysql linux или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.11.11.35402

Оптимизация производительности MySQL

MySQL — это одна из самых популярных реляционных систем управления базами данных, которая используется для обеспечения большинства веб-сайтов в интернете. От скорости записи и получения данных из таблиц зависит скорость работы сайта, в целом, так как, если на один запрос будет уходить больше секунды, то это будет тормозить работу php, а в следствии скоро накопиться столько запросов, что сервер не сможет их обработать.

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

Скорость работы MySQL

Оптимизация без аналитики бессмысленна. Перед тем как переходить к оптимизации давайте посмотрим как работает база данных сейчас, есть ли запросы, которые выполняются очень медленно. Все настройки вашего сервиса mysql находятся в файле /etc/my.cnf. Чтобы включить отображение медленных запросов добавьте такие строки в my.cnf, в секцию [mysqld]:

Илон Маск рекомендует:  Что такое код ifxus_free_slob

Здесь первая строка включает запись лога медленных запросов, вторая указывает, что минимальное время запроса для внесения его в этот лог — две секунды. Еще можно включить в лог запросы, которые не используют индексы:

Но это уже необязательно для проверки скорости и используется больше для отладки кода и правильности создания таблиц. Дальше перезапустите сервер баз данных и посмотрите лог:

systemctl restart mariadb

tail -f /var/log/mariadb/slow-queries.log

Мы можем видеть, что есть запросы, которые выполняются больше, чем 10 секунд. Это, например, запрос

SELECT option_name, option_value FROM wp_options WHERE autoload = ‘yes’;

Можно его выполнить отдельно, в консоли mysql:

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

Оптимизация MySQL

Конфигурация MySQL достаточно сложная, но, к счастью, вам не нужно в нее сильно углубляться. Есть специальный скрипт под названием MySQLTunner, который анализирует работу MySQL и дает советы какие параметры нужно изменить и какие значения для них установить. Скрипт поддерживает большинство версий MariaDB, MySQL и Percona XtraDB. Нам понадобится загрузить три файла с помощью wget:

wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv

Первый из них — это сам скрипт, написанный на Perl, второй и третий — база данных простых паролей и уязвимостей. Они позволяют обнаружить проблемы с безопасностью. Дальше можно переходить к тестированию. Я использую сервер с настройками mysql по умолчанию, установленными панелью управления VestaCP.

Буквально за несколько минут скрипт выдаст полную статистику по работе MySQL. Количеству запросов, занимаемому объему памяти и эффективности работы буферов. Вы можете ознакомиться со всем этим, чтобы лучше понять в чем причина проблем. Проблемные места обозначены красными восклицательными знаками. Например, здесь мы видим, что размер буфера движка таблиц InnoDB (InnoDB buffer pool) намного меньше, чем должен быть для оптимальной работы:

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

Все параметры нужно добавлять в /etc/my.cnf. Еще раз замечу, что вы не копируете статью, а смотрите что вам выдала утилита. Начнем с query-cache.

query_cache_size=0
query_cache_type=0
query_cache_limit=1M

Скрипт рекомендует отключить кэш запросов. Query Cache — это кэш вызовов SELECT. Когда базе данных отправляется запрос, она выполняет его и сохраняет сам запрос и результат в этом кэше. И все бы ничего, но при использовании его вместе с InnoDB при любом изменении совпадающих данных кэш будет перестраиваться, что влечет за собой потерю производительности. И чем больше объем кэша, тем больше потери. Кроме того при обновлении кэша могут возникать блокировки запросов. Таким образом, если данные часто пишутся в базу данных — его надежнее отключить.

Оба параметра устанавливают размер памяти, которая используется для внутренних временных таблиц MySQL. Утилита рекомендует использовать объем больше 16 мегабайт, просто установите это ваше значение для обоих переменных, если у вас достаточно памяти, то можно выделить 32 или даже 64. Но важно чтобы оба значения совпадали, иначе будет использоваться минимальное.

Этот параметр отвечает за количество потоков, которые будут закэшированны. После того, как работа с подключением будет завершена, база данных не разорвет его, а закэширует, если количество кэшированных потоков не превышает ограничение. Утилита рекомендует больше четырех, например, 16.

Указывает, что не нужно пытаться определить доменное имя для подключений извне. Ускоряет работу, так как не тратится время на DNS запросы.

Этот параметр определяет размер буфера InnoDB в оперативной памяти, от этого размера очень сильно зависит скорость выполнения запросов. Значение зависит от размера ваших таблиц и количества данных в них. Если памяти недостаточно, запросы будут обрабатываться дольше. У меня используется стандартный объем 128, а нужно больше 652.

Размер файла лога innodb должен составлять 25% от размера буфера. В случае 800 мегабайт это будет 200М. Но тут есть одна проблема. Чтобы изменить размер лога нужно выполнить несколько действий. Поскольку мы изменили все нужные параметры перейдем к перезагрузке сервера. Для нашего лога нужно остановить сервис:

systemctl stop mariadb

Затем переместите файлы лога в /tmp:

mv /var/lib/mysql/ib_logfile[01] /tmp

И запустите сервис:

systemctl start mariadb

Когда размер лога меняется сервис видит поврежденный лог, выдает ошибку и не запускается. Поэтому сначала нужно удалить старый. После этого смотрите есть ли сообщения об ошибках:

systemctl status mariadb

Тестирование результата

Готово оптимизация базы данных mysql завершена, теперь тестируем тот же запрос через клиент mysql:

> USE база_данных;
> SELECT option_name, option_value FROM wpfc_options WHERE autoload = ‘yes’;

Первый раз он выполняется долго, может даже дольше чем обычно, но все последующие разы буквально мгновенно. Результат с более 3 секунд до 0,15. А если брать статистику из slow-log, то от более 12. Если в выводе утилиты для вас были предложены и другие оптимизации, то их тоже стоит применить.

Выводы

Как видите, оптимизация mysql это достаточно просто благодаря такому скрипту, но, в то же время, такая операция может очень сильно помочь, особенно высоконагруженным проектам. Еще лучше ускорить работу может только оптимизация запросов mysql. Не забывайте время от времени проверять параметры, чтобы быть уверенным что все в порядке. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение лекция про производительность MySQL от Percona:

Графический интерфейс MySQL в Windows

Пользователям Windows близок и роден графический интерфейс (GUI). Не чужд, правда, он и пользователям *nix-систем, но сервера мы привыкли все-же видеть в виде тексовых консолей (core-установка Windows Server 2008, кстати, аналогом текстовой консоли Unix не является — это всего-лишь GUI с натянутым CMD, по большому счету).

Несмотря на то, что многие администраторы MySQL прекрасно рулят этим сервером из командной строки, а если даже нет — то через phpmyadmin, в Windows Вам, вероятно, захочется увидеть некое подобие SQL Server Management Studio или Enterprise Manager.

MySQL разработали такую утилиту и предоставляют ее для пользователей Windows (и не только). Конечно, бесплатно.

Итак, открываем сайт www.mysql.com, идем в раздел «Downloads» и тыкам на ссылку «Download» под надписью «MySQL Workbench (GUI Tool)». На открывшейся странице выбираем необходимый нам вариант (я рекомендую MSI) и загружаем.

Да, оно доступно только в виде x86-32 (32-бит), однако работоспособность этой утилиты проверена на Windows Server 2008 R2 (как известно — нативно 64-битной) — все работает.

Установка

Для установки этой утилиты требуется .NET Framework 4 Client Profile. Не пугайтесь — это не весь .Net Framework 4 — полностью это чудо ставить не придется. Обходится утилита Framework 3.5

Скачать и установить Client Profile можно отсюда:
http://www.microsoft.com/downloads/ru-ru/details.aspx?Family >
После устнаовки Client Profile — запускаем установку Workbench. Установка максимально проста — пара вопросов, один из которых — куда, собственно, ставиться, и мы имеем рабочую утилиты для управления MySQL.

Первые шаги

Если Вы работали с Enterprise Manager в SQL Server 2000 или SQL Management Studio в SQL Server 2005/2008+, то суть работы для Вас будет более-менее ясной.

После запуска у Вас будет виден сразу подсоединенный локальный MySQL сервер. Вход осуществляется под пользователем root. Естественно, Вам необходимо знать пароль этого пользователя (аналог sa в MS SQL).

Вы видите три больших области — слева направо:
а) Управление базами данных сервера
б) EER-моделирование
в) Администрирование (запуск/останов/состояние, пользователи и т.д.)

Для подсоединения к необходимой консоли — кликните на названии сервера в этой консоле и введите пароль пользоватя, под которым Вы заходите.

Сноска. В консоли управления базами данных Вы не увидите системных баз. Они скрыты. Будут видны только пользовательские базы данных.

В верхней части Вы можете видеть панель с табами. На них будут отображаться открытые окна (т.е. можно открыть несколько окон за раз, например, работать с несколькими консолями баз данных с разных серверов).

Для подключения к другим (не локальным, например) серверам баз данных Вам необходимо создавать «подключения» через «New connection» для консоли управления БД или «New server instance» для консоли администрирования.

Управлять существующими подключениями (например, поменять адрес, порт, пользователя и т.д.) можно через «Manage Connections» или «Manage server instances» соответственно.

Администрирование

Покликав на нужный сервер (начнем, конечно, с «localhost») в 3й панели на «домашней» вкладке и введя пароль для root мы попадаем в панель администрирования сервера.

На странице «Server Status» мы видим текущий статус сервера: потребляемые ресурсы, статус (хотел сказать «демона». ) службы, текущие подключения к серверу и т.д.

Startup/Shutdown: Соответственно, на этой старнице мы можем остановить сервер или снова его запустить.

Status and system variables: Тут мы можем посмотреть во внутренности состояния сервера в реал-тайме.

Server logs: Если логи сконфигурированы для отображения в таблице (table), то они будут видны здесь. Если же логи ведутся в файл — фигу, консоль отображать их не будет.

Options file: Не залазя в дебри файла my.cnf или его заменяющего на этой установке MySQL, мы можем легко и просто рулить опциями прямо отсюда — из графического интерфейса. Для записи изменения служит кнопка «Apply» внизу справа. Не забывайте, что сервер требует перезагрузки (MySQL-сервер, а не Windows Server) для применения изменений.

Users and privileges: Отсюда мы рулим пользователями данного сервера. Отсюда мы их создаем, разрешаем работать с той или иной базой данных, создавать других пользователей, удаляем и назначаем пароли.

Data export and restore: По сути — это инструмент резервного копирования или переноса баз данных. Отсюда мы можем выгрузить или загрузить выбранные базы данных в файл.

Управление базами данных (SQL Editor)

Выбрав нужным нам сервер в самой левой панели мы попадаем в консоль управления базами данных.

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

Чем-то напоминает SQL Management Studio от Microsoft, не так ли?

Базы данных в Workbench называются Schema. Изначально список схем пуст — системые базы данных не показываются администраторам графической утилиты (в отличие от текстовой консоли управления, где системными базами можно рулить так-же, как и обычными. что бывает чревато неприятностями, конечно).

Для создания базы данных служит пункт «Add schema». Нажав на него, Вы попадете в окно создания базы, где будут заданы стандартные вопросы — имя базы, collation (сравнение), кодировка.

После создания, схема появится в списке схем. Для ее выбора — дважды кликните на ней. Треугольник слева от названия позволяет «раскрыть» схему, увидев ее содержание.

Пункт «Add table» служит для добавления таблицы. При этом схема уже должна быть выбрана. Кликнув на него перед Вами откроется окно создания таблицы. Оно значительно более наполнено опциями, чем окно создания базы. Здесь Вам предлагается задать имя таблицы, ее структуру, ключевые поля, индексы и т.д.

Через «Add view» мы, соответственно, можем создать представление таблицы.

«Add routine» предоставлят нам возможность создать хранимую процедуру для данной базы данных.

Все элементы базы видны после того, как нажать на треугольник слева от ее названия с списке. Отсюда мы можем видеть таблицы, представления и хранимые процедуры (Tables, View и Routines соответственно). По правому клику на элементе можно получить список действий, которые можно осуществлять с этим элементом. Например, у таблицы можно выбрать для просмотра первые 1000 записей (Select rows — Limit 1000), Вызвать редактор таблицы для изменения данных в ней (Edit table rows), Скопировать в буфер обмена те или иные данные таблицы (Copy to clipboard), Открыть те или иные данные во внутреннем SQL-редакторе (Send to SQL Editor), ну или создать новую таблицу, изменить эту или удалить.

Изучаем, пользуемся

Этот топик не предназначен быть мануалом по Workbench — здесь всего-лишь написан ответ на вопрос «А есть ли GUI для MySQL и что это за утилита». Работа с Workbench довольно проста и интуитивно понятна (для того, кто знаком с техническим английским и MySQL в целом, конечно). Поэтому — эстафету я Вам передаю. Утилита, как я уже сказал, проста в освоении.

ЗАПИСКИ АДМИНИСТРАТОРА FREEBSD

Краткое описание утилит для сопровождения MySQL

— утилита для работы с MyISAM таблицами.

Может проверять, восстанавливать и оптимизировать.

Работает с файлами .MYD и .MYI.

Перед использование желательно делать бэкапы.

— показывает опции с которыми был скомпилирован Mysql.

— скрипт, который обновляет все таблицы с привилегиями.

— скрипт который инсталит базы,таблицы которые нужны для работы MYSQL.

— загружает таблицы временных зон (time zones).

— запускаеться каждый раз при обновелнии сервера MySQL.

Проверяет все таблицы во всех базах на совместимость с текущей версией.

Чтобы проверить и восстановить таблицы, и апгрейднуть системные таблицы mysql_upgrade

выполняет следующие команды:

— запуск с ожиданием программы чей pid и время её ожидания можно утсановить:

#mysql_waitpid [options] #pid #time

— утилита для администрирования MySQL сервера.

mysqladmin create db_name

— создать новую БД с именем db_name

— расширенная информация о состоянии сервера

— очистить всю информацию о хостах в кэше

— очистить все логи

— перезагрузить таблицы с привилегиями (тоже что и reload)

— очистить статус переменных

— очистить все таблицы

— устанавливает пароль для БД

Если сервер настроен с подчиненными серверами (репликация)

— запустить репликацию на подчиненном сервере (slave)

— остановить репликацию на подчиненом сервере (slave)

— отображает краткую информацию о статусе сервера

— отобразить переменные сервера и их значения

— покажет кол-во активных клиентских трэдов (threads)

—host=host_name — (-h hostname )

подключиться к MySQL на укзанный хост

— указать пароль на подключение

—port=port_num (-P port_num)

— указать порт подключения

— указывает протокол/метод с

помощью которого происходит подключение

—socket=path (-S path)

— подключение на файл-сокет

— защищенное подключение, через ssl

—user=user_name, -u user_name

— инструмент для обработки бинарных логов MySQL

Сохранить все логи в файл

#mysqlbinlog binlog.000001 > /tmp/statements.sql

— утилита проверки и восстановления таблиц

прочекать все таблицы во всех базах

— автоматически восcтанавливать(чинить) таблицы

— скрипт запуска сервера(рекомендуемый)

— инструмент для бэкапирования баз

#mysqldump -u[username] -p[password] -h[host] db_name [tables] > backup.sql

— игнорить определенную таблицу при бэкапе.

лочить таблицы перед бєкапированием.

сохранить бэкап в формате xml

— утилита для импорта данных, в различных форматах

— утилита для быстрого просмотра баз, таблиц, полей.

#mysqlcheck —check-upgrade —all-databases —auto-repair

— утилита для работы с MyISAM таблицами.

Может проверять, восстанавливать и оптимизировать.

Работает с файлами .MYD и .MYI.

Перед использование желательно делать бэкапы.

— утилита для работы с MyISAM таблицами.

Может проверять, восстанавливать и оптимизировать.

Работает с файлами .MYD и .MYI.

Перед использование желательно делать бэкапы.

Оптимизация сервера MySQL с помощью утилиты MySQL Tuner

Оптимизация сервера MySQL с помощью специальной утилиты mysqltuner.

После установки MySQL на выделенный сервер, базовый файл конфигурации находится в /etc/my.cnf .
В такой конфигурации работать сервер будет, но про оптимальную работу говорить не буду.

Сперва потребуется конфигурационный файл my.cnf , более подходящий для нашего сервера.

По умолчанию примеры расположены в директории /usr/share/mysql .

Выбираем конфигурационный файл исходя из наших потребностей:

my-small.cnf — для систем с объемом памяти менее 64Mb, где MySQL используется редко или в незначительной степени;

medium.cnf — под MySQL может выделяться до 64Мb памяти (для маломощных VDS/VPS);

my-large.cnf — для систем с оперативной памятью от 512Мb;

my-huge.cnf — для систем с оперативной памятью 1-2Gb;

Выбираем одну из наиболее подходящих нам конфигураций и переписываем её вместо текущей my.cnf .

Приступим к оптимизации с помощью утилиты MySQL Tuner

Илон Маск рекомендует:  article в HTML

Скачиваем утилиту

Скрипт попросит имя и пароль MySQL администратора, после чего выведет результаты своей работы.
Вывод результатов работы утилиты примерно такой:

Очень важно обратить внимание на строку

Количество текущих соединений — 16, количество возможных соединений — 151. Параметр 151 — это параметр использующийся по умолчанию. Обычно этого значения маловато, именно из-за него появляются сообщения вида “Too many active connections”. Увеличим этот параметр до 300.
В секции [mysqld] в конфигурационном файле /etc/my.cnf

Еще одним, наиболее важным параметром увеличения производительности MySQL является key_buffer_size . Параметр определяет размер общего для всех пользовательских процессов буфера индексных блоков MyISAM таблиц. Обычно устанавливается в пределах 30-40% от общей выделенной под MySQL оперативной памяти.

Следует помнить, что рекомендации утилиты MySQL Tuner будут тем более оптимальны, чем дольше работает без перезагрузок сервер MySQL.

Рекомендации

1) Ставим MyISAM по умолчанию и отключаем ненужные нам вещи:

2) Привязываем базу для использования только на нашем сервере:

3) Выставляем необходимые максимальные ограничения:

4) Устанавливаем общий буфер, кэш для запросов и максимальный размер для временных таблиц:

5) Максимальное число соединений к базе и ожидающих их процессов:

6) Буферы на каждый процесс (большие значения типа 1Mb и выше для нас это явно перебор).

7) Служебный сортировочный буфер (память постоянно не занимает) и кэш открытых таблиц.

8) Необходимые таймауты, чтобы отсекать долгие ожидания.

9) Установка кодировки UTF-8:

10) По-желанию можно добавить логи медленных запросов или неиспользуемых индексов
(создайте доступным на запись файл для лога).

Обратите внимание на “1.7M per thread (151 max threads)”. Увеличив количество max_connections в 3 раза, сильно увеличится использование оперативной памяти. Поэтому не стоит ставить max_connections про запас. Посмотрите свои текущие метрики, сколько соединений бывает в пике, прибавьте к этому 10-20%.

Mysql утилиты для mysql

Программы и утилиты My SQL и mSQL

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

isamchk [options] table [table. ]

Выполняет операции на самих табличных файлах (называемых ISAM-файлами из-за индексно-последовательного метода доступа (Indexed Sequential Access Method). Утилита используется для проверки и восстановления файлов, а также для выдачи информации о них. Вы должны указать корректный путь к файлам ISAM, которые хотите проверить. По умолчанию они находятся в / ‘usr/’local/var/’databasename/tablename.ISM.

Вывести информацию об использовании утилиты.

Устанавливает отладочный уровень debuglevel. Отладочная библиотека MySQL имеет множество настроек. Полный список параметров доступен по адресу: http://www.turbolift.com/mysql/appen- dixC.html. Обычно используется следующий набор параметров — d:t:o,/tmp/debugfile.

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

Выводит информацию о таблице.

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

Заменяет существующие файлы без предупреждения. Также без уведомления восстанавливает поврежденные таблицы.

Выводит всю статистику о проверяемой таблице.

Обновляет только указанное число (number) используемых ключей. Этот параметр в основном используется для отключения ключей (-k=0), чтобы добиться ускорения табличных операций, таких как загрузка блоком (bulk load).

He восстанавливать таблицы с символическими связями.

Ускорить процесс восстановления путем отказа от проверки файла данных.

Выполнить общее восстановление таблицы. Не исправляет дубликаты уникальных ключей.

Использовать старый, более медленный метод восстановления, который может исправить некоторые из повреждений, пропущенных при восстановлении методом .

Установить переменную. См. главу 16 «Системные переменные MySQL и mSQL», где приведен полный список используемых переменных.

Выводить только ошибки.

Отсортировать индексный блок таблицы.

Отсортировать записи, используя index.

Распаковать файл, сжатый с помощью pack_isam.

Выводить дополнительную информацию.

Вывести информацию о версии.

Если таблица заблокирована, ждать разблокирования. Отсутствие данного параметра приведет к тому, что ismchk прекратит выполнение при обнаружении заблокированной таблицы.

isamlog [options] [logfile] [table]

Выводит информацию о журналах ISAM. Журнал ISAM генерируется, если сервер MySQL запущен с параметром -log-isam. Информация из журнала ISAM используется для восстановления поврежденных таблиц с помощью параметра -r. Однако изменение файлов данных напрямую может быть опасным, и перед этим всегда следует резервировать данные.

Вывести справочную информацию по использованию утилиты.

Установить отладочный уровень. Список доступных параметров вы найдете по адресу: http://www.turbolift.com/mysql/appendixC.html .

Проверить только последнее указанное (number) количество команд.

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

Каталог с файлами журналов ISAM.

Выводить дополнительную информацию.

Пропустить указанное число команд перед исследованием журнала.

Удалить компоненты из пути к файлам.

Игнорировать ошибки при обработке журнала. Этот параметр позволяет восстановить всю информацию из журнала.

-R datafile recordnumber

Открыть файл данных ISAM (имя файла заканчивается на .ISM) и выбрать данные, начиная с записи recordnumber.

Обновить таблицы, используя информацию из журнала.

Вывести дополнительную информацию о процессе.

Вывести информацию о версии.

Поместить в файл все записи, найденные с использованием

mysql [options] [database]

Монитор командной строки MySQL. Эта программа является основным способом общения с сервером MySQL. Можно набирать команды SQL прямо в командной строке, и результат будет выведен на экран. Если ввести database, эта база данных автоматически выбирается как текущая.

Монитор командной строки в работе очень похож на оболочку bash, поскольку использует те же функции GNU, что и bash. Например, вы можете завершить слово с помощью клавиши tab; нажатием Ctrl + a перейти к началу строки или, нажав Ctrl + e, перейти к концу строки; Ctrl + г производит обратный поиск, а нажатие вызывает предыдущую команду.

Распоряжения могут занимать несколько строк и не выполняться, пока не будет дана команда на выполнение. При использовании команд из полных слов, (go, print и т. д.) команда должна быть введена в строку полностью. Команды с экранированием (\g, \p и т. д.) могут быть использованы в конце любой строки. Точка с запятой может использоваться для завершения команды SQL, так же как и \g.

Показать список команд утилиты.

Очистить (игнорировать) текущую команду.

Редактировать текущую команду с помощью редактора по умолчанию.

Выйти из программы.

Послать текущую команду серверу баз данных.

Послать текущую команду серверу баз данных и вывести результаты по вертикали.

Вывести текущую команду.

Перестроить индекс завершающих терминов.

Показать информацию о сервере и текущей сессии.

Выбрать другую базу данных.

Вывести информацию об использовании утилиты.

Устанавливает отладочный уровень. Полный список параметров доступен по адресу: http://www.turbolift.com/mysql/appendixC.html .

Не хэшировать заново данные из базы в автоматическом режиме.

Выводить результаты в пакетном (‘batch’) режиме. Это приведет к выводу информации с минимумом форматирования, что позволит легко использовать эту информацию в других приложениях баз данных.

-е statement, -execute=statement

Выполнить указанную команду и завершить программу. Автоматически применяет параметр -В.

Не останавливать обработку при обнаружении ошибки SQL.

-h host, -host=host


Подключиться к базе данных на указанном хосте.

Не производить буферизацию между запросами.

-О variable=value, -set-variable variable=value

Установить переменную. См. главу 16, где приведен полный список используемых переменных.

-p [password], —password[=password]

Пароль, используемый при подключении к серверу баз данных. Если этот параметр используется без аргумента, пароль запрашивается из командной строки.

-P port, -port=port

Номер порта для подключения к серверу баз данных.

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

Показывать результаты без какого-либо преобразования. Полезно только в сочетании с -В.

Не выводить некоторые результаты.

-S file, -socket=file

Файл сокета Unix, используемый для подключения к серверу баз данных.

Показывать результат в табличном формате.

Показать отладочную информацию при выходе из программы.

-и username, -user=username

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

Вывести дополнительные результаты.

Вывести информацию о версии.

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

mysqlaccess [options] [host] user database

Показывает и изменяет права доступа к серверу MySQL. Вы можете проверить права пользователя для любой базы данных и для подключения с любого хоста. Для выбора нескольких хостов, пользователей и баз данных возможно использование маскирующих символов (wildcards) оболочки Unix ‘*’ и ‘?’. Все действия выполняются над копией действующей таблицы привилегий, пока не будет вызвана команда mysqlaccess -commit .

Показать справочную информацию по пользованию утилитой.

Показать результаты в виде краткой однострочной таблицы.

Перенести изменения из временной таблицы в действующую таблицу привилегий. Вы должны запустить mysqladmin reload, чтобы сделанные изменения вступили в силу.

Обновить временную таблицу, используя действующую таблицу привилегий.

-d database, -db=database

База данных, к которой происходит подключение.

Установить отладочный уровень (от 0 до 3).

-h host, -host=host

Имя хоста, права доступа которого проверяются.

Примеры использования программы.

-Н host, —rhost=host

Подключиться к серверу баз данных на удаленном хосте.

Подключится к серверу MySQL версии старше 3.21.

-р password, -password=password

Проверить пароль идентифицируемого пользователя.

Показать предложения к следующей версии программы.

Показать разницу между действующей и временной таблицами привилегий.

-Р password, -spassword=password

Пароль администратора для доступа к таблице привилегий.

Вывести примечания к версии программы.

Отменить изменения, сделанные во временной таблице.

Вывести результаты в полном табличном формате.

-и username, -user=username

Имя проверяемого пользователя.

-U username. -superuser=username

Имя администратора для доступа к таблицам привилегий.

Вывести информацию о версии.

mysqladmin [options] command [ command. . . ]

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

Создать новую базу данных.

Уничтожить базу данных.

Выдать отчет о состоянии сервера, более полный, чем это делает команда status.

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

Записать на диск все журнальные данные из буфера.

То же, что и reload,

Обнулить переменные состояния.

Выполнить все буферизованные табличные операции.

kill thread-id [thread-id. ]

Завершить один или несколько потоков mysqld.

Установить пароль администратора для сервера баз данных.

Проверить, работает ли сервер MySQL.

Показать активные потоки сервера mysqld.

Перезагрузить информацию о правах доступа из таблицы привилегий.

Выполнить все буферизованные табличные операции и открыть заново файлы журналов.

Закончить работу сервера баз данных.

Отчет о состоянии сервера.

Вывести системные переменные, используемые сервером.

Вывести номер версии сервера.

Вывести информацию об использовании утилиты.

Установить отладочный уровень. См. isamchk для подробной информации.

Удалить таблицы без подтверждения. Также не выходить из программы при обнаружении ошибки.

-h host, —host=host

Подключиться к серверу MySQL на указанном хосте.

-i seconds, —sleep=seconds

Последовательно выполнять команды, делая между каждым запуском паузу длиной в указанное количество секунд.

-р [password], —password=[password]

Пароль, используемый для подключения к серверу баз данных. Если использовать без аргумента, пароль будет запрошен из командной строки.

-Р port, —port=port

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

Не выдавать сообщение об ошибке при невозможности подключения к серверу баз данных.

-S file, —socket=file

Сокет Unix, используемый для подключения к локальному серверу баз данных.

-и username, —user=username

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

Вывести информацию о версии программы mysqladmin.

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

Демон сервера MySQL. Все остальные программы взаимодействуют с базой данных через этот сервер, поэтому он должен работать постоянно (за исключением отключений для настройки). Демон обычно запускается из скрипта, называемого safe_mysqld. Этот скрипт устанавливает необходимые переменные окружения и запускает mysqld с нужными параметрами.

Показать информацию об использовании демона.

Устанавливает отладочный уровень. См. Isamchk для детальной информации.

-b directory, —basedir=directory

Основной каталог, используемый при определении всех остальных каталогов.

Позволить работу с большими результирующими наборами, сохраняя временные результаты в файле.

IP-адрес, к которому привязан сервер.

-h directory, —datadir=directory

Каталог, содержащий файлы данных баз данных.

— l [logfile], -log [=logfile]

Записывает в журнал различную информацию, включая сообщения об ошибках и подключениях. Если аргумент не указан, в ка-честве файла журнала используется hostname, log , где hostname — имя компьютера, на котором работает сервер.

Создает журнал изменения в файлах данных (ISAM). Если аргумент не задан, в качестве файла журнала используется isam.log. Созданным журналом можно управлять с помощью утилиты isamlog.

Создает журнал изменения базы данных. Журнал будет назван hostname.num, где hostname — имя сервера, а num — аргумент, заданный в команде. Если аргумент не указан, будет использоваться уникальное число.

Язык (English, French и т. д.), который будет использовать сервер.

Разрешить запуск новых (и, возможно, небезопасных) подпрограмм.

Использовать протокол 3.20.x.

-О variable=value, -set-variable variable=value

Установить переменные. См. главу 16, где приводится полный список переменных.

Имя файла, в котором содержится идентификатор процесса (PID) запущенного .сервера. Значение по умолчанию hostname, pid , где hostname — имя серверной машины.

-P port, -port=port

Номер используемого сетевого порта.

Разрешение сетевой проверки безопасности, что снижает производительность базы данных.

Использовать для подключения только IP-номера (а не имена). Это увеличивает производительность работы с сетью.

Запретить сетевые подключения и использовать только локальный доступ.

Дать всем потокам одинаковый приоритет.

Не разрешать новые (и, возможно, небезопасные) запуски демона.

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

Не выполнять блокировку потоков.

Имя файла сокета Unix.

Выводить отладочную информацию при выключении сервера.

Разрешить блокировку потоков.

Вывести информацию о версии.

mysqldump [options] database [table]

Выдает содержимое указанной базы данных (или таблицы базы данных) в виде серии команд ANSI SQL. Эта команда удобна при разделении базы данных; используйте параметры -1 и -opt.

Вывести информацию об использовании утилиты.

Установить отладочный уровень. Список всех доступных параметров можно найти по адресу: http://www.turbolift.com/mysql/appendixC.html .

Вставлять команду DROP TABLE перед каждой командой CREATE TABLE.

Обрамлять командой LOCK TABLE команды ввода данных.

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

Выводить полные инструкции INSERT.

Использовать сжатие данных при подключении к серверу.

Использовать INSERT DELAYED при вставке записей.

Не выводить данные, записывать только операторы создания таблиц.

Использует вариант команды INSERT со множеством вводимых записей, что может ускорить последующий ввод данных.

Не выходить из программы при обнаружении ошибки.

Записать на диск данные журнала из буфера перед созданием дампа таблиц(ы).

При дампе с параметром -Т этот разделитель помещается по сторонам каждого поля.

При дампе с параметром -Т этот разделитель помещается перед всеми специальными символами в качестве управляющего символа.

При дампе с параметром -Т этот разделитель используется после каждого поля (по умолчанию — табуляция).

-h hostname, —host=hostname

Подключиться к серверу баз данных на удаленном хосте.

Заблокировать таблицы перед дампом.

При дампе с параметром -Т этот разделитель используется после каждой строки.

He выполнять дамп команд описания таблиц, записывать только данные.

-О variable=value, -set-variable variable=value

Установить переменную. См. главу 16, где находится полный список используемых переменных.

Добавляет наиболее употребительные и полезные параметры командной строки: —add-drop-table, —add- locks, —extended-insert, —quick и —use-locks.

-P [password], -password [=password]

Пароль, используемый для подключения к серверу базы данных. Если не указан аргумент, пароль будет запрошен из командной строки.

-Р port, -port=port

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

Показывать все данные немедленно, без буферизации.

-S file, —socket=file

Сокет Unix, используемый для локального подключения к серверу.

-Т directory, —tab=directory

Генерирует файл с символом табуляции в качестве разделителя, куда помещаются данные, одновременно с файлом, содержащим SQL-команды, описывающие создание таблицы. Файлы записываются в указанный каталог.

-u username, —user=username

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

Илон Маск рекомендует:  Strspn дать длину совпадающей подстроки

Показать информацию о состоянии процесса, пока происходит создание дампа данных.

Показать информацию о версии.

-w statement, —where=statement

Выводить только записи, удовлетворяющие заданному SQL-выражению WHERE.

mysqlimport [options] database [file]

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

Выдать информацию по использованию утилиты.

Установить отладочный уровень. Список всех доступных параметров можно найти по адресу: http://www.turbolift.com/mysql/appendixC.html .

Удалить все данные, содержащиеся в таблице, перед вводом новых данных.

Не выходить из программы, если обнаружена ошибка

Указывает, что поля в файле данных заканчиваются символами, указанными в string.

Указывает, что поля в файле данных с двух сторон заключены в символы string.

Указывает, что поля в файле данных могут обрамляться (не обязательно) с двух сторон и другими указанными в string символами.

Заданное значение string используется в файле данных как управляющий символ.

-h hostname, —host=hostname

Подключиться к серверу баз данных на удаленном хосте.

Игнорировать новые данные, если они конфликтуют с существующим уникальным ключом.

Заблокировать таблицы перед вставкой данных.

-р [password], —password[=password]

Пароль, используемый для подключения к серверу базы данных. Если не указан аргумент, пароль запрашивается из командной строки.

-Р port, —port=port

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

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

Не показывать некоторые результаты.

-S file, -socket=file

Сокет Unix, используемый для локального подключения к серверу.

-u username, —user=username

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

Показать информацию о состоянии процесса, пока происходит вставка данных.

Показать информацию о версии.

mysqlshow [options] [database] [table] [field]

Показывает структуру указанной базы данных, таблицы или поля. Если не заданы аргументы, выдается список всех баз данных. С одним аргументом будет выдана информация о структуре указанной базы. С двумя аргументами программа выдаст информацию об указанной таблице. Если указать все три элемента, будет показана информация об отдельном указанном поле таблицы.

Выдать справку по использованию утилиты.

Установить отладочный уровень. Список всех доступных параметров можно найти по адресу: http://www.turbolift.com/mysql/appen-dixC.html.

-h hostname, —host=hostname

Подключиться к удаленному серверу баз данных.

Показать ключи таблицы.

— Р [password], -password]=password]

Пароль, используемый для подключения к серверу базы данных. Если не указан аргумент, пароль запрашивается из командной строки.

-Р port, —port=port

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

-S file, —socket=file

Сокет Unix, используемый для локального подключения к серверу.

-и username, —user=username

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

Показать информацию о версии.

msql [options] database

Монитор командной строки mSQL. Эта программа является основным средством общения с сервером mSQL. SQL-команды можно набирать прямо в командной строке, и результат будет выведен на экран. Команды могут занимать несколько строк. Никаких действий не выполняется, пока не будет введена строка, заканчивающаяся командой на выполнение. . * .

Редактировать предыдущее предложение с помощью редактора по умолчанию.

Послать команду серверу баз данных.

Вывести текущую команду.

Выйти из программы.

Использовать альтернативный файл конфигурации.

Подключиться к серверу баз данных на удаленном хосте.

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

Использовать альтернативный файл конфигурации.

msqladmin [options] command

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

copy database newdatabase

Создает точную копию базы данных под другим именем.

Создает новую пустую базу данных.

Удаляет базу данных и уничтожает ее содержимое.

move database newdatabase

Переименовывает базу данных.

Перечитывает файлы конфигурации.

Выключает сервер баз данных.

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

Показывает информацию о версии сервера баз данных.

Использовать альтернативный файл конфигурации.

Подключиться к серверу баз данных на удаленном хосте.

Не запрашивать подтверждения команд.

msqldump [options] database [table]

Выдает содержимое указанной базы данных (или таблицы базы данных) в виде серии команд ANSI SQL.

Выводить полные инструкции INSERT.

Использовать альтернативный файл конфигурации.

Подключиться к серверу баз данных на удаленном хосте.

Создавать дамп только операторов создания таблиц; не выводить данные.

Использовать оператор WHERE для ограничения выводимых данных.

Показать информацию о процессе, пока создается дамп данных.

msqlexport [options] database table

Выдает содержимое указанной таблицы в формате с разделителями в стиле ASCII.

Использовать character для экранирования любых разделителей, найденных в данных.

Подключиться к серверу баз данных на удаленном хосте.

Символ, обрамляющий каждое значение данных.

Символ, используемый для разделения данных.

Показать информацию о процессе, пока происходит экспорт данных.

msqlimport [options] database table

Читает файл с ASCII-разделителями и записывает данные в указанную таблицу.

Символ, используемый как управляющий в файле данных.

Подключиться к серверу баз данных на удаленном хосте.

Символ, обрамляющий каждое значение данных.

Символ, используемый для разделения данных.

Показать информацию о процессе, пока происходит вставка данных.

relshow [options] [database] [table] [ index|_seq]

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

Использовать альтернативный файл конфигурации.

Подключиться к серверу баз данных на удаленном хосте.

Утилиты для оптимизации MySQL\MariaDB.

Рассмотрим утилиты для оптимизации и контроля производительности MySQL\MariaDB сервера. Некоторые из них известны широко, другие, к моему удивлению, администраторами используются редко…

1. При установке сервера БД, в директории /usr/share/mysql/ можно найти готовые конфигурационные файлы для разных конфигов сервера. Например владельцы VDS с 512 Mb памяти могут попробовать использовать отсюда конфиг my-small.cnf, либо, если его лимитов будет не достаточно, конфиг my-medium.cnf.

2. На сайте tools.percona.com имеется доступ к генератору конфигов сервера БД. Если предустановленного конфига по какой-то причине оказалось не достаточно, можно авторизоваться на сайте и попробовать сгенерировать конфигурацию здесь.

3. mysqladmin — клиент для работы с сервером БД. Удобный инструмент, который позволяет без запуска консоли сервера БД работать с базами и настройками MySQL. Очень удобен для использования в скриптах.

4. mysqltuner.pl — известный скрипт для оптимиации сервера БД. Скачиваем его, запускаем, и получаем анализ текущей ситуации и рекомендации по увеличению конкретных параметров в конфиге. Для получения оптимального результата, имеет смысл запускать анализ после того как сервер БД проработал без перезапуска более 24-36 часов.

5. Известный в прошлом, но к сожалению, теряющий актуальность для последних версий сервера БД скрипт tuning-primer.sh. Однако некоторые администраторы всё ещё используют его в работе. Принцип работы со скриптом аналогичный — после запуска, скрипт анализирует параметры сервера БД и даёт рекомендации по их изменению.

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

/.mytop. При необходимости, утилиту можно использовать в других скриптах, для этого у неё предусмотрен соответствующий режим работы.

7. Утилита mtop. В CentOS ставится из репоитория rpmforge (он всё ещё жив частично, да). Аналогично с предыдущей утилитой, администратор может получить статистику по работе сервера БД, информацию о запросах к нему. Имеется возможность принудительно завершить нужный процесс, отфильтровать результаты только для определённого пользователя или хоста.

8. Утилита innotop. В CentOS устанавливается из репозитория EPEL. Отличный инструмент для анализа и работы с базами, которые используют InnoDB. Аналогично предыдущим утилитам, innodb позволяет получить информацию о запросах к базе, конкретных таблицах, статистику репликации, информацию о буферах InnoDB и т. п.

И mtop, и mytop, и innotop имеют поддержку ввода команд, которые позволяют администратору использовать весь доступный функционал утилит. Список команд можно получить введя уже в запущенном приложении символ знака вопроса — ?

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

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

Полностековые инструменты

Вспомним, что существует два типа эталонного тестирования: полностековое и по­компонентное. Нет ничего удивительного в том, что имеются инструменты для тестирования всего приложения и тестирования под нагрузкой MySQL и других компонентов по отдельности. Полностековое тестирование — обычно лучший способ получить полное представление о производительности всей системы. В число инструментов полностекового тестирования входят следующие:

  • ab. Это инструмент тестирования производительности сервера HTTP Apache. Он показывает, сколько запросов в секунду способен обслуживать НТТР-сервер. Если вы тестируете веб-приложение, это число демонстрирует, какое количество запросов в секунду может обслужить приложение в целом. Это очень простой инструмент, но полезность его ограниченна, поскольку он просто обращается к одному адресу URL настолько быстро, насколько это возможно. Дополнитель­ную информацию об утилите ab вы найдете на странице;
  • http_load. Концепция этого инструмента похожа на концепцию ab : он также предназначен для создания нагрузки на веб-сервер, но более гибок. Вы можете создать входной файл, включающий много разных адресов URL, a http_load будет выбирать их случайным образом. Также можете настроить параметры таким образом, что запросы станут отправляться с заданным интервалом, а не с максимально возможной скоростью. Подробности смотрите на этой странице;
  • JMeter. Представляет собой приложение на языке Java, которое может загружать другое приложение и измерять его производительность. Эта утилита была раз­работана для тестирования веб-приложений, но ее можно использовать и при тестировании FTP-серверов, и при отправке запросов к базе данных через ин­терфейс JDBC.

Утилита JMeter значительно сложнее, чем ab и http_load . С ее помощью можно более гибко имитировать поведение реальных пользователей, управляя таким параметром, как время нарастания нагрузки. У нее есть графический пользова­тельский интерфейс со встроенными средствами построения графиков, также она позволяет сохранять результаты и воспроизводить их в автономном режиме. Подробности смотрите на этой странице.

Инструменты покомпонентного тестирования

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

  • mysqlslap. Имитирует нагрузку на сервер и выдает данные хронометража. Эта утилита является частью дис­трибутива MySQL 5.1, но ее можно использовать и с более ранними версиями, начиная с 4.1. Вы можете настроить количество конкурентных соединений и передать программе с помощью либо команды SQL в командной строке, либо файла с командами SQL. Если вы не зададите режим тестирования вручную, программа сама исследует схему базы данных и автоматически сгенерирует команды SELECT .
  • MySQL Benchmark Suite (sql-bench). Вместе с сервером MySQL распространяется набор инструментов эталонного тестирования, который можно использовать для исследования нескольких различных серверов баз данных. Он однопоточный и измеряет скорость выполнения запросов сервером. Результаты показывают, какие типы операций сервер хорошо выполняет.

Главным преимуществом этого набора является то, что он содержит множество готовых тестов, так что с его помощью легко сравнивать различные подсистемы хранения или конфигурации. Как высокоуровневый инструмент эталонного те­стирования, он полезен для сравнения общей производительности двух серверов. Кроме того, вы можете запускать подмножество тестов (например, тестировать только производительность команды UPDATE ). В основном тесты нагружают про­цессоры, но есть короткие периоды, в течение которых выполняется большой объем операций дискового ввода/вывода.

Среди основных недостатков этого инструмента можно выделить следующие: он работает в однопользовательском режиме, задействует очень маленький набор исходных значений, не допускает тестирования на данных, характерных именно для ваших условий, а его результаты могут сильно варьироваться от запуска к запуску. Поскольку он однопоточный и полностью последовательный, с его помощью невозможно оценить выигрыш от наличия нескольких процессоров, но вместе с тем он вполне пригоден для сравнения однопроцессорных серверов. Эталонное тестирование сервера базы данных требует установки драйверов DBD и языка Perl. Документацию можно найти по адресу.

  • Super Smack. Это инструмент эталонного те­стирования, тестирования под нагрузкой и создания нагрузки для MySQL и PostgreSQL. Он мощный, но довольно сложный, позволяет имитировать ра­боту нескольких пользователей, загружать тестовые данные в базу и заполнять таблицы случайно сгенерированными значениями. Эталонные тесты содержатся в smack-файлах, использующих простой язык определения клиентов, таблиц, за­просов и т. д.
  • DatabaseTestSuite. Инструмент разработан компанией The Open Source Develop­ment Labs (OSDL) и размещен на сайте SourceForge по этому адресу, представляет собой набор утилит для запуска эталонного тестиро­вания, сходного со стандартными промышленными эталонными тестами, такими как опубликованные Советом по оценке производительности обработки транзак­ций (Transaction Processing Performance Council, TPC). В частности, инструмент dbt2 представляет собой бесплатную (но несертифицированную) реализацию теста ТРС-С OLTP. Мы неоднократно использовали его, пока не разработали специальный инструмент для MySQL.
  • PerconasTPCCMySQLTool. Мы создали реализацию эталонного теста, ана­логичного тесту ТРС-С, с инструментами, специально разработанными для эталонного тестирования MySQL. Обычно используем его для оценки пове­дения MySQL при нестандартных нагрузках. (Для более простых эталонных тестов применяем sysbench.) Исходный код доступен на этой странице, также в исходном репозитории хранится краткая документация по использованию.
  • sysbench. Это многопоточный инструмент для эта­лонного тестирования системы. Цель его применения — получить представление о производительности системы с точки зрения факторов, важных для работы сервера базы данных. Например, вы можете измерить производительность фай­лового ввода/вывода, планировщика операционной системы, распределения па­мяти и скорости передачи данных, потоков POSIX и самого сервера базы данных, sysbench поддерживает скрипты на языке Lua, что делает его очень гибким при тестировании множества сценариев. Это наш любимый универ­сальный инструмент эталонного тестирования MySQL, операционной системы и производительности оборудования.
  • Функция MySQL BENCHMARK()

    В MySQL имеется удобная функция BENCHMARK() , которую можно использовать для тестирования скорости выполнения определенных типов операций. Для этого нужно указать количество прогонов и подлежащее выполнению выражение. Им может быть любое скалярное выражение, например скалярный подзапрос или функция. Это удоб­но для тестирования относительных скоростей некоторых операций, в частности для оценки того, какая из функций, MD5() или SHA1() , работает быстрее:

    Возвращаемым значением всегда является 0, клиентское приложение сообщает, сколько времени потребовалось на выполнение запроса. В данном случае, похоже, быстрее работает MD5() . Однако корректно использовать функцию BENCHMARK() не­просто, если вы не совсем понимаете, что она делает. А она просто определяет, как быстро сервер может выполнить выражение, но не сообщает ничего об издержках на синтаксический анализ и оптимизацию. И если выражение не включает в себя пользовательскую переменную, как в нашем примере, то второй и последующие случаи выполнения сервером данного выражения могут оказаться обращением к кэшу.

    Несмотря на удобство функции BENCHMARK() , мы никогда не применяем ее для реаль­ного эталонного тестирования: слишком трудно определить, что она в действитель­ности измеряет. Кроме того, ее результаты относятся лишь к небольшой части всего процесса выполнения.

    Теперь рассмотрим на конкретных примерах, как работает каждая утилита. Начнем с http_load.

    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL