Я использую двойную главную репликацию MySQL и теперь хочу перейти на одну базу данных без репликации. Как полностью отключить репликацию в обеих базах?
Я использую двойную главную репликацию MySQL и теперь хочу перейти на одну базу данных без репликации. Как полностью отключить репликацию в обеих базах?
Ответы:
Чтобы полностью отключить репликацию с установкой мастер-мастер, вы должны сделать следующее для каждого ведомого:
STOP SLAVE;
RESET SLAVE;
(Используйте RESET SLAVE ALL;
для MySQL 5.5.16 и позже)SLAVE STATUS
запросам даже после того, как RESET SLAVE
будет дана команда. Важно знать о средствах мониторинга или удаленного управления конфигурацией. Подтвержденное поведение с MySQL 5.5.38 на CentOS 6.5.
Я знаю, что это старый вопрос, но я обнаружил, что мне также нужно сбросить ведомые переменные. Если вы используете «бла», как предложено, сервер попытается при запуске найти сервер «бла».
Изменить
MASTER
наMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
Вы можете убедиться, что машина больше не является рабом
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
сейчас выдает ошибку.
На подчиненном сервере (ах):
Нет необходимости перезапускать MySQL на главном или подчиненном устройстве. Полная документация может быть найдена в разделе 19 Справочного руководства MySQL .
Я бы рекомендовал оставить остальные настройки репликации на месте, если вы решите вернуться к своей предыдущей конфигурации. Таким образом, вам просто нужно переместить данные и сбросить положение подчиненного устройства (не забудьте удалить skip-slave-start), а не воссоздавать настройку целиком.
Независимо от версии MySQL, наиболее полный способ сделать это заключается в следующем
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
Это должно работать для последней версии, потому что настройки репликации все еще остаются в оперативной памяти для MySQL 5.5.
Я только что ответил на аналогичный вопрос на эту тему: Как изменить предыдущее ведомое устройство MySQL, чтобы оно было ведущим, и удалить информацию о состоянии подчиненного устройства?
Редактирование одного файла my.cnf недостаточно для отключения репликации. Фактически, это больше не рекомендуемый способ его включения. Помещение записей в файл my.cnf действует только при следующем запуске и ведет себя так, как если бы вы ввели команду в клиент mysql:
mysql> смените master на master_host = 'blah', master_user = 'blah', master_password = 'blah' ...;
Оба эти метода создадут файл в каталоге данных с именем master.info . Пока этот файл существует, сервер будет пытаться выполнить репликацию, используя указанные там сведения. "СБРОС Раба;" Команда, указанная в первом ответе, избавит от файла master.info (а также от файла relay-log.info ). Как упоминалось в первом ответе, вы также хотите убедиться, что у вас нет этой информации о конфигурации в файле my.cnf, в противном случае при следующем перезапуске сервера ведение журнала будет возобновлено.
Один ответ здесь:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* Отредактируйте файл конфигурации MySQL: /etc/my.cnf и удалите следующие 7 строк в раздел под названием [mysqld]:
port=3306
log-bin
server-id=1
master-host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*
Перезапустите MySQL.
Я добавляю это к ответу Харрисона Фиска:
Если вы использовали, RESET SLAVE ALL;
то перезагрузка не требуется.
Кроме того, вы можете включить события, которые были отключены на ведомом устройстве:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Для каждого из них:
alter event <event_name> enable;