Настройка репликации master-master на MySQL

Шаг 1 на сервере 1

В файл my.cnf добавляем/изменяем следующие строки:

Перезапускаем mysql, создаем базу (в моем случае это radme_rep)
В консоли выполняем:

Создаем пользователя и даем ему права на операции с БД (под ним будет заходить Сервер 2)

Шаг 2 на сервере 2

В файл my.cnf добавляем/изменяем следующие строки:

Перезапускаем mysql, создаем базу (в моем случае это radme_rep)
В консоли выполняем:

Создаем пользователя и даем ему права на операции с БД (под ним будет заходить Сервер 1)

Шаг 3 на сервере 1

В консоли выполняем

Шаг 4 на сервере 2

В консоли выполняем

Шаг 5

На обоих серверах можно в my.cnf добавить строчку

Для пропуска ошибок вида Error ‘Duplicate entry…’ в случае одновременной записи в таблицу на обоих серверах (при небольшой нагрузке маловероятно). Иначе — необходимо настроить разный автоинскремент на серверах.

Как удалить репликацию данных?

В консоли на обоих серверах выполняем:

 

Далее останавливаем сервер и из папки mysql удаляем все файлы вида

Посмотреть статус репликации можно так:

mysql> SHOW SLAVE STATUS \G;

Поле Seconds_Behind_Master должно стремится к нулю.

Column count of mysql.user is wrong. Expected 45, found 42

ERROR 1805 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. The table is probably corrupted

Сея ошибка у меня возникла после перемещения папок с БД MySQl с одного сервера на другой, с разными версиями самой MySQL. Да и ОС были разные: FreeBSD -> Ubuntu. Правильно конечно было сделать бекап и из бекапаже залить. НО! долго.

Чинится:

mysql_upgrade —force

Конвертируем дату в текстовом поле таблицы в формат даты MySQl

Дано: таблица вида

Как видим поле valueparam в текстовом виде, да еще не в формате MySQL. А выборка нужна именно по диапазону дат. Решение кроется в использовании функции STR_TO_DATE:

Еще один полезный SQL запрос для Zabbix

Получение триггеров с учетом зависимостей. Т.е. Если некий тригер А зависит от триггера Б, то его в списке не будет.

1 5 6 7 8 9 13