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.