21.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 из двоичного архива tarball, вам необходимо явно указать путь к серверам 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: 5.7.44
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=latin1
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: 5.7.44-ndb-7.5.36, Nodegroup: 0, *)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (Version: 5.7.44-ndb-7.5.36)
[mysqld(API)] 3 node(s)
id=3 @127.0.0.1 (Version: 5.7.44-ndb-7.5.36)
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.