Spec-Zone.ru › MySQL 5.7

21.6.10 Использование MySQL Server для NDB Cluster

mysqld — это традиционный процесс сервера MySQL. Для использования с NDB Cluster, mysqld должен быть скомпилирован с поддержкой NDB движка хранения, как это сделано в предварительно скомпилированных бинарных файлах, доступных на https://dev.mysql.com/downloads/. Если вы компилируете MySQL из исходного кода, вы должны вызвать CMake с опцией -DWITH_NDBCLUSTER=1, чтобы включить поддержку NDB.

Более подробную информацию о компиляции NDB Cluster из исходного кода см. в Разделе 21.3.1.4, «Компиляция NDB Cluster из исходного кода в Linux», а также Разделе 21.3.2.2, «Компиляция и установка NDB Cluster из исходного кода в Windows».

(Дополнительную информацию об опциях и переменных mysqld, помимо обсуждаемых в этом разделе, которые относятся к NDB Cluster, см. в Разделе 21.4.3.9, «Опции и переменные сервера MySQL для NDB Cluster».)

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

  • Используйте --ndbcluster в качестве параметра запуска на командной строке при запуске mysqld.

  • Вставьте строку, содержащую ndbcluster, в раздел [mysqld] вашего файла my.cnf.

Простой способ проверить, запущен ли сервер с включенным движком хранения NDBCLUSTER, заключается в выполнении команды SHOW ENGINES в мониторе MySQL (mysql). Вы должны увидеть значение YES в качестве значения Support в строке для NDBCLUSTER. Если вы видите NO в этой строке или если такой строки нет в выводе, вы не используете версию MySQL с поддержкой NDB. Если вы видите DISABLED в этой строке, вам нужно включить его одним из двух описанных способов.

Для чтения данных конфигурации кластера сервер MySQL требует, как минимум, трех фрагментов информации:

  • Собственный идентификатор узла кластера сервера MySQL

  • Имя хоста или IP-адрес сервера управления

  • Номер TCP/IP порта, на котором он может подключиться к серверу управления

Идентификаторы узлов могут быть динамически назначены, поэтому их не обязательно указывать явно.

Параметр mysqld ndb-connectstring используется для указания строки подключения либо на командной строке при запуске mysqld, либо в my.cnf. Строка подключения содержит имя хоста или IP-адрес, где находится сервер управления, а также используемый им TCP/IP порт.

В следующем примере ndb_mgmd.mysql.com — хост, на котором находится сервер управления, и сервер управления прослушивает сообщения кластера на порту 1186:

$> mysqld --ndbcluster --ndb-connectstring=ndb_mgmd.mysql.com:1186

Дополнительную информацию о строках подключения см. в Разделе 21.4.3.3, «Строки подключения NDB Cluster».

С этой информацией сервер MySQL может полностью участвовать в кластере. (Мы часто называем процесс mysqld, работающий таким образом, узлом SQL.) Он полностью осведомлен обо всех узлах данных кластера и их статусе и устанавливает подключения ко всем узлам данных. В этом случае он может использовать любой узел данных в качестве координатора транзакций и читать/обновлять данные узла.

Вы можете увидеть, подключен ли сервер MySQL к кластеру в клиенте mysql, используя SHOW PROCESSLIST. Если сервер MySQL подключен к кластеру, и у вас есть привилегия PROCESS, то первая строка вывода будет такой:

mysql> SHOW PROCESSLIST \G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db:
Command: Daemon
   Time: 1
  State: Waiting for event from ndbcluster
   Info: NULL
Важно

Для участия в NDB Cluster процесс mysqld должен быть запущен с обеими опциями --ndbcluster и --ndb-connectstring (или их эквивалентами в my.cnf). Если mysqld запущен только с опцией --ndbcluster, или если он не может связаться с кластером, работать с таблицами NDB невозможно, и невозможно создать новые таблицы, независимо от движка хранения. Последнее ограничение является мерой предосторожности, предназначенной для предотвращения создания таблиц с теми же именами, что и таблицы NDB, в то время как узел SQL не подключен к кластеру. Если вы хотите создать таблицы, используя другой движок хранения, в то время как процесс mysqld не участвует в NDB Cluster, вы должны перезапустить сервер без опции --ndbcluster.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/mysql-cluster-mysqld.html

Spec-Zone.ru

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