MySQL — полезные мелочи

Оптимизация параметров Mysql с помощью скриптов

Mysqltuner

Mysqlprimer

1. mysqltuner.pl (http://blog.mysqltuner.com/)
2. tuning-primer.sh (http://www.day32.com/MySQL/)

 

Логирование медленных запросов + запросов не использующих индексы

 

Увеличение количества открытых  MySQL файлов

Часто при использовании Inndb MySQL открывает очень много файлов и сваливается, т.к. упирается в лимит (1024 открытых файла). Текущее использование открытых файлов можно узнать так:

Если же оно приближается к 1024, то стоит в блок [mysqld] файла my.cnf добавить следующее:

 

Увеличение количества MySQL-подключений

 

Просмотр справки по команде show,create user,create table

 

Просмотр имен таблиц из базы joomla_on имеющих в составе своего имени слово “users”

Просмотр баз данных , имена которых содержат слово mysql

Просмотр типов привилегий

Просмотр структуры таблицы databasename.tablename

Просмотр общей информации о текущем сеансе MySQL

Просмотр расширенной информации о состоянии MySQL

Просмотр текущей базы данных

Просмотр установленной версии MySQL

Просмотр текущего пользователя

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

Просмотр клиентских подключений к MySQL-серверу и их количества

Просмотр всех опций mysql-утилиты

(здесь же указано, где MySQL-сервер ищет свой файл конфигурации)

Запись всех выполняемых команд и возвращаемых после их выполнения данных в файл

Остановка записи в файл

 

MySQLAdmin

 

Просмотр статуса сервера

Просмотр расширенной информации о состоянии MySQL

Смена пароля MySQL-пользователя

Перезагрузка таблиц привилегий

Обновление всех кешей и файлов журналов

Просмотр информации о версии сервера

Просмотр всех активных процессов сервера

Проверка  работает ли MySQL.

Список всех команд

Завершение(уничтожение) процесса/ов по его ID

 

Использование базы данных information_schema

 

просмотр всех привилегий для всех пользователей

Просмотр списка активных клиентских подключений(аналог show processlist;)

 

Установка значение переменных(использование команды SET)

 

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

Для установки глобального значения используем ключевое слово GLOBAL

Для установки значения  для текущего сеанса используем ключевое слово SESSION

Если не указано никакого ключевого слова, то система по умолчанию будет считать, что указано ключевое слово SESSION

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

 

Установка глобальной переменной

текущее значение переменной остается без изменений до переподключения

MariaDB [(none)]> show variables like ‘%tmp_table_size%’;

Переподключаемся к MySQL

MariaDB [(none)]> show variables like ‘%tmp_table_size%’;

 

Просмотр системных переменных через команду SELECT

 

Глобальных переменных

 

Сессионных переменных

Либо

Вывод сразу нескольких переменных(как глобальных, так и сессионных)

 

Просмотр переменных состояния  с помощью SHOW STATUS

 

Создание пользователя

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

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

 

Просмотр привилегий пользователя

Права USAGE устанавливается автоматически при создании пользователя. На само деле оно ничего не позволяет пользователю, кроме как подключаться к MySQL.

 

Выдача права SELECT пользователю winxp на все таблицы базы joomla_on

Перезагрузка таблиц привилегий

 

Удаление права Select для пользователя winxp в базе базе joomla_on

 

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

 

Удаление пользователя(предварительно не обходимо удалить у него все права)

 

Выдача всех прав на базу joomla_on для пользователя winxp,подключенного с сети 192.168.1.0/24 с паролем 123456789

 

Присваивание нулевого количества  привилегий

 

Смена пароля для существующего пользователя

 

Смена пароля для текущего пользователя(под которым подключен к MySQL)

 

Принцип проверки подлинности паролей MySQL

Пароли хранятся в графе Password таблицы привилегий mysql.user и шифруются посредством MYSQL-функции PASSWORD(). Когда какой-либо пользователь входит на сервер MySQL, введя при этом пароль, MySQL сначала шифрует строку этого пароля при помощи функции PASSWORD(), а затем сравнивает получившийся результат со значением в графе Password записи с информацией о пользователе в таблице user.

Если эти значения совпадут(либо,если другие правила доступа позволят), то пользователь получит доступ. Если же они не совпадут, в доступе будет отказано.

 

Восстановление забытого пароля root для MySQL

для Ubuntu mysqld

В другой консоли

 

Журнал ошибок

Определение местонахождения журнала ошибок

 

Общий журнал запросоов

Данный файл по умолчанию имеет имя hostname.log и располагается в MySQL-каталоге data.
Его имя и расположение можно переопределить с помощью переменной general_log_file

 

Журнал медленных запросов

 

Записываем все запросы, продолжительность  выполнения которых превышает установленное количество времени(определяемое значением переменной long_query_time)

( в данном случае более 5 секунд)

 

Двоичный(бинарный) журнал

 

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

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

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

Если необходимо выполнить запросы, которые не должно быть  записаны в двоичный журнал, тогда устанавливаем сессионную переменную sql_log_bin в значение 0

После чего все запросы, выполненные  в этом сеансе,  не будут записываться в двоичный журнал

Теперь можно восстановить данные/структуру из бинарного журнала

#Восстановление с бинарного журнала

проверка

 

Проверка таблиц

При работающем MySQL-сервере используем команду check table

При остановленном MySQL-сервере  для таблиц с механизмом хранения данных  MyISAM-таблиц можно использовать утилиту myisamchk указывая для проверки файл *.MYI(где содержатся индексы), а не файл MYD(где содержится инфорамция(данные))

 

Восстановление таблиц

Для MyISAM-таблиц

 

Опции восстановления

– ремонт и восстановление(стандартное восстановление)

– безопасный режим восстановления (медленнее тщательное восстановление)

– быстрое восстановление(контролируются только индексные файлы, но не файлы данных)

 

repair table

 

Оптимизация таблиц

 

Проверка, исправление ошибок  и оптимизация всех баз данных

 

Резервоное копирование и восстановление описано в отдельной статье. Использование mysqldump

 

Подсчет размера баз данных

Подсчет размера конкретной базы данных

Подсчет размера таблиц в базе данных mydatabase

Подсчет размера конкретной таблицы

 

Подсчет контрольной суммы таблицы
Эта команда особенно полезна, если у вас настроена MySQL-репликация и вы хотите убедиться что данные согласованы, проверив идентичность таблиц на master и slave.
Во время подсчета контрольной суммы таблица блокируется на чтение (read lock). Чем больше таблица, тем больше времени это может занять.

Подсчет количества строк в таблице

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика