Spec-Zone.ru › MySQL 9.2

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

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

Более подробную информацию о компиляции NDB Cluster из исходного кода см. в разделе 25.3.1.4, “Building NDB Cluster from Source on Linux” и разделе 25.3.2.2, “Compiling and Installing NDB Cluster from Source on Windows”.

(Дополнительную информацию об опциях и переменных mysqld, помимо обсуждаемых в этом разделе, которые актуальны для NDB Cluster, см. в разделе 25.4.3.9, “MySQL Server Options and Variables for 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

Дополнительную информацию о строках подключения см. в разделе 25.4.3.3, “NDB Cluster Connection Strings”.

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

Вы можете проверить, подключен ли сервер MySQL к кластеру, используя SHOW PROCESSLIST в клиенте mysql. Если сервер 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-9.2-en/mysql-cluster-mysqld.html

Spec-Zone.ru

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