Как удалить указанный mariaDB Connection_name для репликации с несколькими источниками
У меня есть несколько настроек репликации на mariaDB(последняя версия:10.1.8). Пожалуйста, убедитесь, что я использую Multiple replication
не наследие Single replication
,
Я добавил некоторые настройки с CHANGE MASTER "blah" TO
команда. Теперь я хотел бы удалить только один из них show all slaves status
,
mysql -e "show all slaves status\G;" | grep "Connection_name\|Running"
Connection_name:
Slave_IO_Running: No
Slave_SQL_Running: Yes
Connection_name: asi.exapmle.com
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Connection_name: bee.exapmle.com
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Connection_name: dild.exapmle.com
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Connection_name: datr.exapmle.com
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Connection_name: db.exapmle.com
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Connection_name: nop.exapmle.com
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Как я могу удалить только db.exapmle.com
из этого списка репликации без влияния на другие репликации?
2 ответа
Наконец я нашел решение!
RESET SLAVE 'Connection_name' all
было то, что я хотел. Не просто RESET SLAVE
нужно добавить ALL
в конце.
https://mariadb.com/kb/en/mariadb/reset-slave-connection_name/
[root@maria ~]# mysql -e "show all slaves status\G;" | grep "Connection_name\|Running"
Connection_name: # <- empty name and wanna remove
Slave_IO_Running: No
Slave_SQL_Running: Yes
Connection_name: wanna-remove-db # <- wanna remove
Slave_IO_Running: No
Slave_SQL_Running: Yes
Connection_name: wanna-keep-db # <- don't wanna remove '
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
[root@maria ~]# mysql -e "STOP SLAVE 'wanna-remove-db';"
[root@maria ~]# mysql -e "RESET SLAVE 'wanna-remove-db' all;"
[root@maria ~]# mysql -e "show all slaves status\G;" | grep "Connection_name\|Running"
Connection_name:
Slave_IO_Running: No
Slave_SQL_Running: Yes
Connection_name: wanna-keep-db
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
[root@maria ~]# mysql -e "STOP SLAVE ''"
[root@maria ~]# mysql -e "RESET SLAVE '' all;"
[root@maria ~]# mysql -e "show all slaves status\G;" | grep "Connection_name\|Running"
Connection_name: wanna-keep-db
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Войдите в свой раб (db.exapmle.com) и выполните STOP SLAVE
команда.
Если у вас нет доступа к подчиненному устройству, вам необходимо внести его в черный список, например, отменив гранты для подчиненного пользователя. В последнем случае все еще разрешается подчиненному подключаться, но не проходить аутентификацию (поэтому вы должны запретить подключение, используя, например, iptables).