Настройка 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:
  /etc/init.d/mysql stop
Запускаем в режиме без проверки прав доступа:
 /usr/sbin/mysqld —skip-grant-tables &
Соединяемся как root без пароля:
mysql
Выбираем активную БД:
use mysql;
Обновляем пароль:
  mysql> update user set Password=PASSWORD(‘новый пароль’) WHERE User=’root’;
mysql> flush privileges;

Завершаем работу mysqld:
   fg
«Ctrl+c»

Запускаем MySQL
   /etc/init.d/mysql start

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

 

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

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

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

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

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

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

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

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

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

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

Создаем файл, с командами kill (например /tmp/kill_list.txt)

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

Mysql slow log включить

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

Mysql очистка bilog

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

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

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.

Добавить комментарий

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *