20.2.1.3 Учетные данные пользователя для распределенного восстановления
Группа репликации использует процесс распределенного восстановления для синхронизации членов группы при их присоединении к ней. Распределенное восстановление включает в себя передачу транзакций из двоичного журнала донора присоединяющемуся члену с использованием канала репликации, именуемого group_replication_recovery. Поэтому необходимо настроить пользователя репликации с соответствующими правами, чтобы Группа репликации могла установить прямые каналы репликации между членами. Если члены группы настроены для поддержки использования удалённой операции клонирования в рамках распределенного восстановления, этот пользователь репликации также используется в качестве пользователя клонирования на доноре и также требует соответствующих прав для этой роли. Более подробное описание распределенного восстановления см. в разделе 20.5.4 «Распределенное восстановление».
Один и тот же пользователь репликации должен использоваться для распределенного восстановления на каждом члене группы. Процесс создания пользователя репликации для распределенного восстановления может быть зафиксирован в двоичном журнале, и затем вы можете полагаться на распределенное восстановление для репликации операторов, используемых для создания пользователя. В качестве альтернативы вы можете отключить двоичный журнал перед созданием пользователя репликации, а затем вручную создать пользователя на каждом члене, например, если вы хотите избежать распространения изменений на другие экземпляры серверов. Если вы делаете это, убедитесь, что вы снова включите двоичный журнал после настройки пользователя.
Если подключения распределенного восстановления для вашей группы используют SSL, пользователь репликации должен быть создан на каждом сервере перед подключением присоединяющегося члена к донору. Инструкции по настройке SSL для подключений распределенного восстановления и созданию пользователя репликации, требующего SSL, см. в разделе 20.6.3 «Обеспечение безопасности подключений распределенного восстановления»
По умолчанию пользователи, созданные в MySQL 8, используют раздел 8.4.1.1 «Подключаемый модуль аутентификации с кэшированием SHA-2». Если пользователь репликации для распределённого восстановления использует подключаемый модуль аутентификации с кэшированием SHA-2, и вы не используете SSL для подключений распределённого восстановления, для обмена паролями используются пары RSA-ключей. Вы можете скопировать открытый ключ пользователя репликации на присоединяющийся член или настроить доноров на предоставление открытого ключа по запросу. Инструкции по этому вопросу см. в разделе 20.6.3.1 «Безопасные учетные данные пользователя для распределенного восстановления».
Чтобы создать пользователя репликации для распределенного восстановления, выполните следующие действия:
Запустите экземпляр MySQL-сервера, затем подключите к нему клиента.
-
Если вы хотите отключить двоичный журнал, чтобы создать пользователя репликации отдельно на каждом экземпляре, сделайте это, выполнив следующую команду:
mysql>
SET SQL_LOG_BIN=0; -
Создайте пользователя MySQL с указанными привилегиями:
REPLICATION SLAVE, необходимая для подключения распределенного восстановления к донору для получения данных.CONNECTION_ADMIN, чтобы обеспечить, что соединения Группы репликации не будут прерваны, если один из вовлечённых серверов переведён в автономный режим.BACKUP_ADMIN, если серверы в группе репликации настроены для поддержки клонирования (см. раздел 20.5.4.2 «Клонирование для распределенного восстановления»). Эта привилегия необходима члену для выполнения операции клонирования в роли донора для распределенного восстановления.GROUP_REPLICATION_STREAM, если для группы репликации используется стековая коммуникация MySQL (см. раздел 20.6.1 «Коммуникационный стек для управления безопасностью соединений»). Эта привилегия необходима для того, чтобы учётная запись пользователя могла устанавливать и поддерживать соединения для Группы репликации, используя коммуникационный стек MySQL.
В этом примере показан пользователь
rpl_userс паролемpassword. При настройке своих серверов используйте подходящее имя пользователя и пароль:mysql>
CREATE USERmysql>rpl_user@'%' IDENTIFIED BY 'password';GRANT REPLICATION SLAVE ON *.* TOmysql>rpl_user@'%';GRANT CONNECTION_ADMIN ON *.* TOmysql>rpl_user@'%';GRANT BACKUP_ADMIN ON *.* TOmysql>rpl_user@'%';GRANT GROUP_REPLICATION_STREAM ON *.* TOmysql>rpl_user@'%';FLUSH PRIVILEGES; -
Если вы отключили двоичный журнал, включите его снова, как только создадите пользователя, выполнив следующую команду:
mysql>
SET SQL_LOG_BIN=1; -
После создания пользователя репликации необходимо предоставить учетные данные пользователя серверу для использования с распределенным восстановлением. Вы можете сделать это, задав учетные данные пользователя в качестве учетных данных для канала
group_replication_recovery, используя операторCHANGE REPLICATION SOURCE TO. В качестве альтернативы, вы можете указать учетные данные пользователя для распределенного восстановления в оператореSTART GROUP_REPLICATION.Учетные данные пользователя, заданные с помощью оператора
CHANGE REPLICATION SOURCE TO, хранятся в открытом виде в репозиториях метаданных репликации на сервере. Они применяются всякий раз, когда запускается Группа репликации, включая автоматические запуски, если переменная системыgroup_replication_start_on_bootустановлена вON.Учетные данные пользователя, указанные в операторе
START GROUP_REPLICATION, сохраняются только в памяти и удаляются операторомSTOP GROUP_REPLICATIONили при выключении сервера. Вам необходимо выполнить операторSTART GROUP_REPLICATION, чтобы предоставить учетные данные снова, поэтому вы не можете автоматически запускать Группу репликации с этими учетными данными. Этот метод указания учетных данных пользователя помогает защитить серверы Группы репликации от несанкционированного доступа.
Дополнительную информацию о последствиях безопасности каждого метода предоставления учетных данных пользователя см. в разделе 20.6.3.1.3 «Безопасное предоставление учетных данных пользователя репликации». Если вы решили предоставить учетные данные пользователя с помощью оператора
CHANGE REPLICATION SOURCE TO, выполните следующую команду на экземпляре сервера, заменивrpl_userиpasswordзначениями, используемыми при создании пользователя:mysql>
CHANGE REPLICATION SOURCE TO SOURCE_USER='->rpl_user',SOURCE_PASSWORD='->password'FOR CHANNEL 'group_replication_recovery';
© 2025 Oracle
Licensed under the GPLv2 License.