25.4.1 Быстрая настройка кластера NDB
Для ознакомления с основами мы опишем простейшую конфигурацию функционального кластера NDB. После этого вы сможете разработать нужную вам конфигурацию, используя информацию из других разделов этой главы.
Сначала вам нужно создать директорию конфигурации, например, /var/lib/mysql-cluster, выполнив следующую команду от имени пользователя root:
$> mkdir /var/lib/mysql-cluster
В этой директории создайте файл с именем config.ini, содержащий следующую информацию. Замените значения HostName и DataDir соответствующими значениями для вашей системы.
# file "config.ini" - showing minimal setup consisting of 1 data node,
# 1 management server, and 3 MySQL servers.
# The empty default sections are not required, and are shown only for
# the sake of completeness.
# Data nodes must provide a hostname but MySQL Servers are not required
# to do so.
# If you do not know the hostname for your machine, use localhost.
# The DataDir parameter also has a default value, but it is recommended to
# set it explicitly.
# [api] and [mgm] are aliases for [mysqld] and [ndb_mgmd], respectively.
[ndbd default]
NoOfReplicas= 1
[mysqld default]
[ndb_mgmd default]
[tcp default]
[ndb_mgmd]
HostName= myhost.example.com
[ndbd]
HostName= myhost.example.com
DataDir= /var/lib/mysql-cluster
[mysqld]
[mysqld]
[mysqld]
Теперь вы можете запустить сервер управления ndb_mgmd. По умолчанию он пытается прочитать файл config.ini в текущем каталоге, поэтому измените директорию на ту, где расположен этот файл, и затем вызовите ndb_mgmd:
$> cd /var/lib/mysql-cluster
$> ndb_mgmd
Затем запустите один узел данных, выполнив ndbd:
$> ndbd
По умолчанию, ndbd ищет сервер управления по адресу localhost на порту 1186.
Если вы установили MySQL из бинарного архива, вам необходимо явно указать путь к серверам ndb_mgmd и ndbd. (Обычно они находятся в /usr/local/mysql/bin.)
Наконец, перейдите в директорию данных MySQL (обычно /var/lib/mysql или /usr/local/mysql/data) и убедитесь, что файл my.cnf содержит необходимые параметры для включения движка хранения NDB:
[mysqld]
ndbcluster
Теперь вы можете запустить сервер MySQL как обычно:
$> mysqld_safe --user=mysql &
Подождите некоторое время, чтобы убедиться, что сервер MySQL работает правильно. Если вы увидите сообщение mysql ended, проверьте файл .err сервера, чтобы узнать, что пошло не так.
Если всё прошло успешно, вы можете начать использовать кластер. Подключитесь к серверу и проверьте, что движок хранения NDBCLUSTER включён:
$> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 9.2.0
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW ENGINES\G
...
*************************** 12. row ***************************
Engine: NDBCLUSTER
Support: YES
Comment: Clustered, fault-tolerant, memory-based tables
*************************** 13. row ***************************
Engine: NDB
Support: YES
Comment: Alias for NDBCLUSTER
...
Номера строк в приведенном выше примере могут отличаться от тех, которые вы видите на вашей системе, в зависимости от конфигурации сервера.
Попробуйте создать таблицу NDBCLUSTER:
$> mysql
mysql> USE test;
Database changed
mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
Query OK, 0 rows affected (0.09 sec)
mysql> SHOW CREATE TABLE ctest \G
*************************** 1. row ***************************
Table: ctest
Create Table: CREATE TABLE `ctest` (
`i` int(11) default NULL
) ENGINE=ndbcluster DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
Чтобы проверить, что ваши узлы были настроены правильно, запустите клиент управления:
$> ndb_mgm
Используйте команду SHOW в клиенте управления, чтобы получить отчет о состоянии кластера:
ndb_mgm> SHOW
Cluster Configuration
---------------------
[ndbd(NDB)] 1 node(s)
id=2 @127.0.0.1 (Version: 9.2.0-ndb-9.2.0, Nodegroup: 0, *)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (Version: 9.2.0-ndb-9.2.0)
[mysqld(API)] 3 node(s)
id=3 @127.0.0.1 (Version: 9.2.0-ndb-9.2.0)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
На этом этапе вы успешно настроили рабочий кластер NDB. Теперь вы можете хранить данные в кластере, используя любую таблицу, созданную с помощью ENGINE=NDBCLUSTER или его псевдонима ENGINE=NDB.
© 2025 Oracle
Licensed under the GPLv2 License.