Spec-Zone.ru › MySQL Shell 8.4

8.3 Учетные записи пользователей для InnoDB ClusterSet

Серверные узлы в InnoDB Cluster используют три типа учетных записей пользователей. Одна учетная запись конфигурации сервера InnoDB Cluster используется для настройки экземпляров сервера для кластера. Одну или несколько учетных записей администратора InnoDB Cluster можно создать для администраторов для управления экземплярами сервера после настройки кластера. Одну или несколько учетных записей MySQL Router можно создать для экземпляров MySQL Router для подключения к кластеру. Каждая учетная запись пользователя должна существовать на всех серверных узлах в InnoDB Cluster с одинаковым именем пользователя и одинаковым паролем.

В развертывании InnoDB ClusterSet каждый серверный узел является частью InnoDB Cluster, поэтому они требуют одинаковых типов учетных записей пользователей. Учетные записи пользователей из основного кластера используются для всех кластеров в развертывании. Каждая из учетных записей пользователей должна существовать на каждом серверном узле в каждом кластере в развертывании — как в основном кластере, так и в реплицированных кластерах.

Учетная запись конфигурации сервера InnoDB Cluster

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

Предпочтительный подход заключается в создании учетной записи конфигурации сервера InnoDB Cluster с помощью команды dba.configureInstance() с параметром clusterAdmin. Для повышения безопасности укажите пароль в интерактивном режиме, в противном случае укажите его с помощью параметра clusterAdminPassword. Создайте ту же учетную запись с тем же именем пользователя и паролем таким же образом на каждом экземпляре сервера, который будет частью InnoDB Cluster — как на экземпляре, к которому вы подключаетесь для создания кластера, так и на экземплярах, которые присоединятся к кластеру после этого.

Команда dba.configureInstance() предоставляет учетной записи необходимые разрешения автоматически. Вы можете настроить учетную запись вручную, если предпочитаете, предоставив ей разрешения, указанные в Руководстве по настройке учетных записей администраторов InnoDB Cluster вручную. Учетной записи требуются полные права чтения и записи в таблицах метаданных InnoDB Cluster, а также полные права администратора MySQL.

Учетная запись конфигурации сервера InnoDB Cluster, которую вы создаете с помощью операции dba.configureInstance(), не реплицируется на другие серверы в InnoDB Cluster или в развертывании InnoDB ClusterSet. MySQL Shell отключает двоичный журнал для операции dba.configureInstance(). Это означает, что вы должны создавать учетную запись на каждом экземпляре сервера индивидуально.

В развертывании InnoDB ClusterSet одинаковая учетная запись конфигурации сервера InnoDB Cluster должна существовать на каждом экземпляре сервера, используемом в развертывании. При настройке реплицированного кластера вам, следовательно, необходимо выполнить команду dba.configureInstance() с параметром clusterAdmin, чтобы создать учетную запись на каждом экземпляре сервера, который будет частью реплицированного кластера. Команда должна называть учетную запись конфигурации сервера InnoDB Cluster из основного кластера, и вы должны указать для нее тот же пароль. Вам необходимо выполнить этот шаг перед присоединением экземпляров к реплицированному кластеру, чтобы учетная запись была доступна для настройки метаданных реплицированного InnoDB Cluster и InnoDB ClusterSet, а также репликации.

Учетные записи администратора InnoDB Cluster

Эти учетные записи могут использоваться для администрирования InnoDB Cluster и InnoDB ClusterSet после завершения процесса конфигурации. Вы можете настроить более одной такой учетной записи. Каждая учетная запись должна существовать на каждом серверном узле в InnoDB Cluster с одинаковым именем пользователя и паролем, и на каждом серверном узле каждого кластера в развертывании InnoDB ClusterSet.

Для создания учетной записи администратора InnoDB Cluster для развертывания InnoDB ClusterSet вы выполните команду cluster.setupAdminAccount() на одном серверном узле в основном кластере после добавления всех экземпляров в этот кластер. Эта команда создает учетную запись с указанным вами именем пользователя и паролем со всеми необходимыми разрешениями. Транзакция для создания учетной записи с cluster.setupAdminAccount() отправляется на все другие экземпляры сервера в кластере для создания учетной записи на них.

Если основной InnoDB Cluster уже существовал, когда вы начали настраивать развертывание InnoDB ClusterSet, учетная запись администратора InnoDB Cluster, вероятно, уже существует. В этом случае вам не нужно выполнять cluster.setupAdminAccount() снова, если вы не хотите создать дополнительные учетные записи администратора InnoDB Cluster.

Реплицированные кластеры в развертывании InnoDB ClusterSet должны иметь тот же набор учетных записей администратора InnoDB Cluster, что и основной кластер. Однако, когда вы создаете реплицированные кластеры, не пытайтесь настраивать учетные записи администратора InnoDB Cluster самостоятельно. Транзакции для создания учетных записей с cluster.setupAdminAccount() записываются в двоичный журнал основного кластера, и они автоматически реплицируются из основного кластера в реплицированные кластеры во время процесса развертывания. При применении реплицированного кластера этих транзакций создаются одинаковые учетные записи на серверных узлах в реплицированном кластере. Если учетные записи уже существуют на сервере в реплицированном кластере, это приводит к ошибке репликации, и сервер не может присоединиться к кластеру. Поэтому вам нужно подождать, пока они не будут реплицированы.

Если транзакция для создания учетной записи администратора InnoDB Cluster произошла некоторое время назад в основном кластере, может потребоваться некоторое время, чтобы транзакция была реплицирована, и учетная запись появилась в реплицированном кластере. Выбор клонирования в качестве метода развертывания реплицированного кластера ускоряет этот процесс.

Примечание

Если основной InnoDB Cluster был настроен в версии до MySQL Shell 8.0.20, команда cluster.setupAdminAccount() могла быть использована с параметром update для обновления разрешений учетной записи конфигурации сервера InnoDB Cluster. Это специальное использование команды, которое не записывается в двоичный журнал и не реплицируется в реплицированные кластеры.

После завершения развертывания InnoDB ClusterSet вы можете использовать cluster.setupAdminAccount() для создания дополнительных учетных записей администратора InnoDB Cluster для ClusterSet. Вы можете сделать это, подключившись к любому серверному узлу в развертывании InnoDB ClusterSet, как в основном кластере, так и в реплицированном кластере. Транзакция для создания учетной записи направляется в основной кластер для выполнения, а затем реплицируется на все серверы в реплицированных кластерах, где она создает учетную запись на всех из них.

Учетные записи MySQL Router

Эти учетные записи используются MySQL Router для подключения к экземплярам серверов в InnoDB Cluster и в развертывании InnoDB ClusterSet. Вы можете настроить более одной такой учетной записи. Каждая учетная запись должна существовать на каждом серверном узле в InnoDB Cluster с одинаковым именем пользователя и паролем или SSL-сертификатом, и на каждом серверном узле каждого кластера в развертывании InnoDB ClusterSet.

Процесс создания учетной записи MySQL Router такой же, как и для учетной записи администратора InnoDB Cluster, но с использованием команды cluster.setupRouterAccount(). Вы создаете учетные записи на одном серверном узле в основном кластере или используете учетные записи, которые уже существуют, если основной InnoDB Cluster уже существовал, когда вы начали настраивать развертывание InnoDB ClusterSet. Затем позвольте реплицированным кластерам применить транзакции для создания учетных записей на их серверных узлах. Инструкции по созданию или обновлению учетной записи MySQL Router см. в Разделе 6.10.2, «Настройка пользователя MySQL Router».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-8.4-en/innodb-clusterset-user-accounts.html

Spec-Zone.ru

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