7.4.3 Создание кластера InnoDB
После подготовки ваших экземпляров используйте функцию dba.createCluster() для создания кластера, используя экземпляр, к которому подключена MySQL Shell, в качестве seed-экземпляра для кластера. Seed-экземпляр реплицируется на другие экземпляры, которые вы добавляете в кластер, делая их репликами seed-экземпляра. В этой процедуре используется экземпляр ic-1 в качестве seed. Когда вы выполняете dba.createCluster(, MySQL Shell создаёт сеанс с классическим протоколом MySQL для серверного экземпляра, подключенного к текущей глобальной сессии MySQL Shell. Например, чтобы создать кластер с именем name)testCluster и назначить возвращённый кластер переменной с именем cluster:
mysql-js> var cluster = dba.createCluster('testCluster')
Validating instance at icadmin@ic-1:3306...
This instance reports its own address as ic-1
Instance configuration is suitable.
Creating InnoDB cluster 'testCluster' on 'icadmin@ic-1:3306'...
Adding Seed Instance...
Cluster successfully created. Use Cluster.addInstance() to add MySQL instances.
At least 3 instances are needed for the cluster to be able to withstand up to
one server failure.
Имя кластера должно быть непустым и не превышать 63 символов. Оно может начинаться только с буквенно-цифрового символа или символа _ (подчёркивание), и может содержать только буквенно-цифровые символы, _ (подчёркивание), . (точка) или - (дефис).
Этот способ назначения возвращённого кластера переменной позволяет вам выполнять дальнейшие операции с кластером, используя методы объекта Cluster. Возвращённый объект Cluster использует новый сеанс, независимый от глобальной сессии MySQL Shell. Это гарантирует, что если вы измените глобальную сессию MySQL Shell, объект Cluster сохранит свой сеанс с экземпляром.
Для администрирования кластера необходимо убедиться, что у вас есть подходящий пользователь с необходимыми привилегиями. Рекомендуется создать администраторского пользователя. Если вы не создали администраторского пользователя при настройке ваших экземпляров, используйте операцию . Например, чтобы создать пользователя с именем Cluster.setupAdminAccount()icadmin, который может администрировать кластер InnoDB, назначенный переменной cluster, выполните:
mysql-js> cluster.setupAdminAccount("icadmin")
Для получения дополнительной информации об администраторских учётных записях кластера InnoDB см. Руководство по настройке администраторских учётных записей кластера InnoDB вручную.
При выполнении dba.createCluster() и при добавлении дополнительного серверного экземпляра в кластер InnoDB путём выполнения , следующие ошибки регистрируются в журнале ошибок серверного экземпляра MySQL. Эти сообщения не представляют опасности и связаны со способом запуска AdminAPI Group Replication: Cluster.addInstance()
2020-02-10T10:53:43.727246Z 12 [ERROR] [MY-011685] [Repl] Plugin
group_replication reported: 'The group name option is mandatory'
2020-02-10T10:53:43.727292Z 12 [ERROR] [MY-011660] [Repl] Plugin
group_replication reported: 'Unable to start Group Replication on boot'
Если у вас возникла ошибка, связанная с недоступностью метаданных, возможно, у вас настроено локальное сетевое интерфейс. Для корректной работы кластера InnoDB отключите локальный интерфейс.
Чтобы проверить, что кластер был создан, используйте функцию status() экземпляра кластера. См. Проверка состояния кластера с помощью . Cluster.status()
После того, как серверные экземпляры принадлежат кластеру, их следует администрировать только с помощью MySQL Shell и AdminAPI. Попытка ручного изменения конфигурации Group Replication на экземпляре после его добавления в кластер не поддерживается. Аналогично, изменение серверных переменных, критически важных для InnoDB Cluster, таких как , после настройки экземпляра с помощью AdminAPI не поддерживается.
При создании кластера с помощью MySQL Shell вы можете задать время ожидания, прежде чем экземпляры будут исключены из кластера, например, когда они станут недоступными. Передайте параметр expelTimeout операции dba.createCluster(), которая настраивает переменную на seed-экземпляре. Параметр expelTimeout может принимать целочисленное значение в диапазоне от 0 до 3600. Все экземпляры, работающие с MySQL сервером 8.0.13 и выше, которые добавлены в кластер с настроенным параметром expelTimeout, автоматически настраиваются с тем же значением expelTimeout, что и на seed-экземпляре.
Для получения информации о других параметрах, которые вы можете передать dba.createCluster(), см. Раздел 7.9, “Модификация или растворение кластера InnoDB”.
Возможно включение или выключение с помощью dba.createCluster().
Это может быть установлено только MySQL Shell на MySQL Server 8.0.31 или выше, так как MySQL Shell требует информации, предоставляемой WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE в таблице, которая была добавлена в MySQL 8.0.31.
InnoDB Cluster replicationAllowedHost
При создании кластера, если у вас есть требования безопасности, чтобы все учётные записи, автоматически созданные AdminAPI, имели строгие требования к аутентификации, вы можете установить значение для параметра конфигурации кластера replicationAllowedHost. Параметр replicationAllowedHost означает, что все автоматически созданные учётные записи могут подключаться только с разрешённых хостов, используя строгую фильтрацию на основе подсетей. Ранее учётные записи Внутренние учётные записи, созданные кластером InnoDB по умолчанию были доступны откуда угодно.
Параметр replicationAllowedHost может принимать строковое значение. Например, чтобы создать кластер с именем testCluster и установить параметр replicationAllowedHost на значение 192.0.2.0/24, выполните:
mysql-js> dba.createCluster('testCluster', {replicationAllowedHost:'192.0.2.0/24'})
Настройка стека связи
InnoDB Cluster поддерживает стек связи MySQL, представленный для Group Replication в MySQL 8.0.27.
Параметр communicationStack: XCOM|MYSQL задаёт значение системной переменной Group Replication .
Например:
mysql-js> dba.createCluster("testCluster", {communicationStack: "xcom"})
Стек связи MYSQL является значением по умолчанию для всех новых кластеров, созданных для MySQL 8.0.27 или выше.
Для получения дополнительной информации см. Раздел 7.5.9, “Настройка стека связи Group Replication”.
© 2025 Oracle
Licensed under the GPLv2 License.