Spec-Zone .ru
спецификации, руководства, описания, API

17.5.4. MySQL Server Usage для MySQL Cluster

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

Для получения дополнительной информации о компиляции MySQL Cluster из источника, см. Раздел 17.2.2.3, "Создавая MySQL Cluster from Source on Linux", и Раздел 17.2.3.2, "Компилируя и Кластер MySQL Installing из Источника на Windows".

(Для получения информации о mysqld опциях и переменных, в дополнение к обсужденным в этом разделе, которые относятся к MySQL Cluster, см. Раздел 17.3.4, "MySQL Server Options и Variables для MySQL Cluster".)

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

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

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

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

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

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

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

См. Раздел 17.3.2.3, "MySQL Cluster Connectstring", для получения дополнительной информации о connectstrings.

Учитывая эту информацию, сервер 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 ndbclusterInfo: NULL
Важный

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