Spec-Zone.ru › MySQL 8.4

20.2.1.3 Учетные данные пользователя для распределенного восстановления

Группа репликации использует процесс распределенного восстановления для синхронизации членов группы при их присоединении к группе. Распределенное восстановление включает в себя передачу транзакций из двоичного журнала донора в присоединяющийся член, используя канал репликации под названием group_replication_recovery. Поэтому необходимо настроить пользователя репликации с соответствующими правами, чтобы группа репликации могла установить прямые каналы репликации между членами. Если члены группы настроены для поддержки использования удаленной операции клонирования в рамках распределенного восстановления, этот пользователь репликации также используется в качестве пользователя клонирования на доноре и требует соответствующих прав для этой роли. Полное описание распределенного восстановления см. в разделе 20.5.4 «Распределенное восстановление».

Один и тот же пользователь репликации должен использоваться для распределенного восстановления на каждом члене группы. Процесс создания пользователя репликации для распределенного восстановления может быть зафиксирован в двоичном журнале, а затем вы можете полагаться на распределенное восстановление для репликации утверждений, используемых для создания пользователя. В качестве альтернативы вы можете отключить ведение двоичного журнала перед созданием пользователя репликации, а затем вручную создать пользователя на каждом члене, например, если вы хотите избежать распространения изменений на другие серверные экземпляры. В этом случае убедитесь, что вы снова включите ведение двоичного журнала после настройки пользователя.

Важно

Если для соединений распределенного восстановления вашей группы используется SSL, пользователя репликации необходимо создать на каждом сервере перед подключением присоединяющегося члена к донору. Инструкции по настройке SSL для соединений распределенного восстановления и созданию пользователя репликации, требующего SSL, см. в разделе 20.6.3 «Защита соединений распределенного восстановления»

Важно

По умолчанию пользователи, созданные в MySQL 8, используют раздел 8.4.1.2 «Кэширование подключаемого модуля аутентификации SHA-2». Если пользователь репликации для распределенного восстановления использует подключаемый модуль аутентификации caching SHA-2, и вы не используете SSL для соединений распределенного восстановления, для обмена паролями используются пары ключей RSA. Вы можете либо скопировать открытый ключ пользователя репликации на присоединяющийся член, либо настроить доноров на предоставление открытого ключа при запросе. Инструкции по этому см. в разделе 20.6.3.1 «Защищенные учетные данные пользователя для распределенного восстановления».

Чтобы создать пользователя репликации для распределенного восстановления, выполните следующие действия:

  1. Запустите экземпляр сервера MySQL, затем подключите клиент к нему.

  2. Если вы хотите отключить ведение двоичного журнала, чтобы создать пользователя репликации отдельно на каждом экземпляре, сделайте это, выполнив следующую команду:

    mysql> SET SQL_LOG_BIN=0;
    
  3. Создайте пользователя MySQL со следующими привилегиями:

    • REPLICATION SLAVE, который необходим для подключения распределенного восстановления к донору для получения данных.

    • CONNECTION_ADMIN, что гарантирует, что соединения группы репликации не будут прерваны, если один из участвующих серверов переведен в автономный режим.

    • BACKUP_ADMIN, если серверы в группе репликации настроены на поддержку клонирования (см. раздел 20.5.4.2 «Клонирование для распределенного восстановления»). Эта привилегия требуется для того, чтобы член мог выступать в роли донора в операции клонирования для распределенного восстановления.

    • GROUP_REPLICATION_STREAM, если стек коммуникаций MySQL используется для группы репликации (см. раздел 20.6.1 «Стек коммуникаций для управления безопасностью подключения»). Эта привилегия требуется для того, чтобы учетная запись пользователя могла устанавливать и поддерживать подключения для группы репликации с использованием стека коммуникаций MySQL.

    В этом примере показан пользователь rpl_user с паролем password. При настройке серверов используйте подходящее имя пользователя и пароль:

    mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'password';
    mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
    mysql> GRANT CONNECTION_ADMIN ON *.* TO rpl_user@'%';
    mysql> GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
    mysql> GRANT GROUP_REPLICATION_STREAM ON *.* TO rpl_user@'%';
    mysql> FLUSH PRIVILEGES;
    
  4. Если вы отключили ведение двоичного журнала, включите его снова, как только создадите пользователя, выполнив следующую команду:

    mysql> SET SQL_LOG_BIN=1;
    
  5. После создания пользователя репликации необходимо предоставить учетные данные пользователя серверу для использования с распределенным восстановлением. Вы можете сделать это, установив учетные данные пользователя как учетные данные для канала 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/group-replication-user-credentials.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API