Настройка mysql,percona и информация по командам

Автор:human

Настройка mysql,percona и информация по командам

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

Обновим права

Как слить данных для тестировщиков — например 100 записей

Дать все права root

GRANT ALL PRIVILEGES ON *.* TO root@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

Как импортировать все таблицы sql в базу

Выполнить Mysql запрос из bash

Как сменить пароль mysql

Свой пароль можно поменять через:

Пароль определенного пользователя можно поменять через:

тоже самое делают:

или

или mysqladmin -u логин password пароль

Инструкция по сбросу пароль root  Mysql.

Останавливаем MySQL:

Запускаем в режиме без проверки прав доступа:
/usr/sbin/mysqld —skip-grant-tables &

Выбираем активную БД:

Обновляем пароль:
update user set Password=PASSWORD(‘новый пароль’) WHERE User=’root’;

Завершаем работу mysqld:

Запускаем MySQL

Бэкап данных с помощью p

ercona xtrabackup

 

Архивация данных и восстановление одной таблицы из бд

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

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

Имя архива состоит из имени базы с расширением sql.gz

Пример выполнения скрипта

Из архива базы database_name извлечется таблица table_name

После этого, если необходимо, можно восстановить данную таблицу в базу.

Убить большое количество запросов в базу

Как убить большое количество запрсов в базу данных? Всё просто. Например запросы, которые длятся больше 10 секунды и с пользователем user_remote

Смотрим количество процессов(необязательно);

Выполняем запрос из файла.

Mysql slow log включить

Добавим строку

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

Mysql очистка bilog

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

Или удалим binlog до определенной даты

Включаем slave compressed protocol

Бэкап данных со slave с жатием в gz

mysqldump -u root -pPassword -R —master-data=2 —max-allowed-packet=1024M -B dbname | gzip > dbname.sql.gz

Пропуск ошибок репликации

Mysql тюнинг репликации

Устанавливаем параметры количества потоков репликации. Ставим в зависимости от реплицируемых баз данных — по 1 на базу, если у вас 10 баз — ставьте 10.

Смотрим

Избавляемся от лагов mysql

1) sync_relay_log = 0
2) sync_relay_log_info = 0
3) sync_master_info = 0
Смотрим значения

Все делаем через

Переключение slave->master в случае отказа master

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

Общая схема этой процедуры такова:

Закрываем доступ клиентов к веб-приложению
Если используется двухуровневая конфигурация (фронтэнд nginx — бэкэнд apache и т.п.), рекомендуется на фронтэнде отключить доступ к бэкэнду (веб-приложению) и отдавать при обращении клиентов к кластеру информационную страницу о регламентных работах.

Останавливаем на всех slave-серверах поток получения обновлений бинарного лога с основного (master) сервера:

Ждем, пока от потока выполнения команд slave (SQL_THREAD) не появится сообщение «Has read all relay log; waiting for the slave I/O thread to update it», говорящее о том, что slave-сервер выполнил все команды из relay-лога в своей базе. Сразу останавливать slave командой STOP SLAVE не рекомендуется, т.к. не все SQL-команды могут быть выполнены из relay-лога (по причине отставания и т.п.), а при переключении slave на новый мастер, relay-лог будет очищен и, возможно, потеряется часть «непроигранных» данных.

Подготовка нового master-сервера

Убеждаемся, что на slave-сервере, который мы хотим сделать master-сервером, бинарный лог ведется и не логируются запросы из master:

Полностью останавливаем slave — потоки чтения бинарного лога и выполнения SQL-команд:

Команда RESET MASTER необходима для очистки бинарного лога нового master, иначе, если в бинарном логе будут записи (устаревшие и т.п.), они проиграются на подключаемых к нему slave-серверах. Такое возможно, если сервер был master с включенным бинарным логом, потом стал slave и перестал использовать бинарный лог, потом снова переводится в режим master.

Итак, новый master подготовлен, у него очищен бинарный лог, и он готов обрабатывать запросы.

Переключение slave-серверов на новый master-сервер

На всех slave-серверах выполняем:

Настройка репликации mysql через скрипт

Добавим содержимое в скрипт

Делаем его исполняемым и запускаем

Естественно указываем свои ип адреса мастера и раба.

Обязательно настраиваем бинарные логи на мастере.
Добавим в /etc/my.cnf на мастере.
[mysqld]
log-bin=mysql-bin
Рестартим mysql.
не забываем установим server-id на мастере и слейве — 1 и 2.
На мастере /etc/my.cnf

На слейве /etc/my.cnf

P.S. Как изменить формат mysql лога bin.

Mysql работаем с бинлогами

Например:

В данном случае будет обработан файл mysql-bin.000038 (из текущей директории), вывод оправится в out.sql, будут выведены только команды, относящиеся к изменению базы с именем db_name. Параметром -s мы запретили вывод дополнительной служебной информации.
Более полезный пример:

Mysql error ib_logfile0 is of different size

Что делать, если во время перезапуска Mysql показывает подобную ошибку:

# Цифры могут быть другими

Это значит, что с момента последней перезагрузки в файле my.cnf был изменен такой параметр:

Как видно из ошибки, фактический размер ib_logfile файлов составляет 5Мб, хотя в настройках указан размер в 256Мб. Существует два варианта решения этой проблемы.

1. Изменить размер лог файлов на правильный

В нашем случае необходимо изменить настройки в my.cnf на:

После этого повторно запустить Mysql.

2. Обновить размер файлов

Для того, чтобы Mysql заработал с новой настройкой, необходимо сначала остановить Mysql:

После этого удалить все текущие бинлоги:

# Нужно удалить оба файла: ib_logfile0 и ib_logfile1

И снова запустить Mysql, он сам пересоздаст эти файлы:

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

Скрипт дампа и импорта базы и произвольных таблиц

Об авторе

human administrator

    Оставить ответ

    Войти с помощью: 

     

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