MySQL временное отключение триггеров

К сожалению «штатной» возможности на данный момент нет. Можно только сделать «финт ушами», и в триггер добавить проверку на необходимость срабатываний. Например вот так:

А в нужный момент, выполнять:

Как залить дамп базы данных созданный в MySQL 5.xx (до 5.6) в MySQL базу версии 5.7

Начиная с MySQL 5.7 база данных по умолчанию запускается в «строгом» режиме, т.е. например если не верная дата в базе, или «должно быть что то, а вставляется NULL», то такие запросы более работать не будут. Соотвественно и дамп сделаный например в MySQL 5.1 в 5.7 уже не зальется. Что делать, если «исправлять ошибки не вариант»? Поможет переключение MySQL в «мягкий режим». Например в консольке:

mysql: delete из select

Казалось бы простая задача, удалить записи по выборке из select. Например:

Однако такая запись выдает ошибку. Исправляемся «костылем»:

Маленькая хитрость при восстановлении из дампа MySQL

Довольно часто, системные администраторы делают дампы не какой то отдельной таблицы, а все базы целиком. Видимо примерно так:

Отсюда возникает проблема: если нужно восстановить только одну базу из множества,  то её не достать — восстанавливаются сразу все.

Но! Костылем можно. Создаем пользователя, который имеет доступ только к одной базе:

И достаем из бекапа базы, под этим пользователем, сказав предварительно MySQL, игнорировать все ошибки (Access denied for user)

Настройка репликации Master-Master на MySQL 5.7 (Репликация MySql)

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

1) Открываем на каждом сервере фай my.cnf (посмотреть где он, можно при помощи команды :

И изменяем/добавляем следующие строчки:

На каждом сервере найдем файл auto.cnf (на FreeBSD он /var/db/mysql/auto.cnf), и и убедимся, что server-uuid разный. Если вдруг одинаковые — поменяем (36 символов!, лучше если менять то конечные числа и с опаской!)

Перезапустим MySql

2) На каждом сервере создадим пользователя, от которого будет происходить репликация

3) На каждом сервере выполним, команду, чтоб увидеть текущий статус репликации

На каждом сервере создаем задание мастер репликацию друг на друга, и запускаем собственно репликацию:

Сервер 1

Сервер 2

Смотрим как идет репликация:

Если нужно приостановить репликацию:

Если нужно удалить репликацию:

1 4 5 6 7 8 12