Comment créer un cluster MySQL multi-nœuds sur Ubuntu 18.04

introduction

La base de données distribuée MySQL Cluster offre une haute disponibilité et un débit élevé pour votre système de gestion de base de données MySQL. Un cluster MySQL se compose d'un ou de plusieurs nœuds de gestion (ndb_mgmd) qui stockent la configuration du cluster et contrôlent les nœuds de données (ndbd), où les données du cluster sont stockées. Après avoir communiqué avec le nœud de gestion, les clients (clients MySQL, serveurs ou API natives) se connectent directement à ces nœuds de données.

Avec MySQL Cluster, il n’ya généralement pas de réplication de données, mais une synchronisation de nœud de données. À cette fin, un moteur de données spécial doit être utilisé - NDBCluster (NDB). Il est utile de considérer le cluster comme un environnement MySQL logique unique avec des composants redondants. Ainsi, un cluster MySQL peut participer à la réplication avec d'autres clusters MySQL.

MySQL Cluster fonctionne mieux dans un environnement sans partage. Idéalement, deux composants ne devraient pas partager le même matériel. Pour des raisons de simplicité et de démonstration, nous nous limiterons à l’utilisation de trois serveurs. Nous allons configurer deux serveurs en tant que nœuds de données qui synchronisent les données entre eux. Le troisième serveur sera utilisé pour le gestionnaire de cluster et également pour le serveur / client MySQL. Si vous faites tourner plusieurs serveurs, vous pouvez ajouter plus de nœuds de données au cluster, découpler le gestionnaire de cluster du serveur / client MySQL et configurer davantage de serveurs en tant que gestionnaires de cluster et serveurs / clients MySQL.

Conditions préalables

Pour terminer ce didacticiel, vous aurez besoin d'un total de trois serveurs: deux serveurs pour les nœuds de données MySQL redondants (ndbd) et un serveur pour le Cluster Manager (ndb_mgmd) et le serveur / client MySQL ( mysqld etmysql).

Dans lessame DigitalOcean data center, créez les gouttelettes suivantes avecprivate networking enabled:

Assurez-vous de noter les adresses IPprivate de vos trois Droplets. Dans ce tutoriel, nos nœuds de cluster ont les adresses IP privées suivantes:

  • 198.51.100.0 sera le premier nœud de données MySQL Cluster

  • 198.51.100.1 sera le deuxième nœud de données

  • 198.51.100.2 sera le nœud du serveur Cluster Manager & MySQL

Une fois que vous avez créé vos Droplets, configuré un utilisateur non root et noté les adresses IP des 3 nœuds, vous êtes prêt à commencer avec ce didacticiel.

[[step-1 -—- installation-et-configuration-du-cluster-manager]] == Étape 1 - Installation et configuration du Cluster Manager

Nous commencerons par télécharger et installer MySQL Cluster Manager,ndb_mgmd.

Pour installer le gestionnaire de cluster, nous devons d'abord récupérer le fichier d'installation.deb approprié à partir du cluster MySQL officieldownload page.

Depuis cette page, sousSelect Operating System, choisissezUbuntu Linux. Ensuite, sousSelect OS Version, choisissezUbuntu Linux 18.04 (x86, 64-bit).

Faites défiler vers le bas jusqu'à ce que vous voyiezDEB Package, NDB Management Server, et cliquez sur le lienDownload pour celui qui contientnotdbgsym (sauf si vous avez besoin de symboles de débogage). Vous serez redirigé vers une pageBegin Your Download. Ici, faites un clic droit surNo thanks, just start my download. et copiez le lien vers le fichier.deb.

Maintenant, connectez-vous à votre droplet Cluster Manager (dans ce didacticiel,198.51.100.2) et téléchargez ce fichier.deb:

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

Installezndb_mgmd en utilisantdpkg:

sudo dpkg -i mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

Nous devons maintenant configurerndb_mgmd avant de l'exécuter pour la première fois; une configuration appropriée garantira une synchronisation et une distribution de charge correctes entre les nœuds de données.

Le gestionnaire de cluster doit être le premier composant lancé dans un cluster MySQL. Il nécessite un fichier de configuration, passé en argument à son exécutable. Nous allons créer et utiliser le fichier de configuration suivant:/var/lib/mysql-cluster/config.ini.

Sur le droplet du gestionnaire de cluster, créez le répertoire/var/lib/mysql-cluster dans lequel ce fichier résidera:

sudo mkdir /var/lib/mysql-cluster

Puis créez et éditez le fichier de configuration en utilisant votre éditeur de texte préféré:

sudo nano /var/lib/mysql-cluster/config.ini

Collez le texte suivant dans votre éditeur:

/var/lib/mysql-cluster/config.ini

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2  # Number of replicas

[ndb_mgmd]
# Management process options:
hostname=198.51.100.2 # Hostname of the manager
datadir=/var/lib/mysql-cluster  # Directory for the log files

[ndbd]
hostname=198.51.100.0 # Hostname/IP of the first data node
NodeId=2            # Node ID for this data node
datadir=/usr/local/mysql/data   # Remote directory for the data files

[ndbd]
hostname=198.51.100.1 # Hostname/IP of the second data node
NodeId=3            # Node ID for this data node
datadir=/usr/local/mysql/data   # Remote directory for the data files

[mysqld]
# SQL node options:
hostname=198.51.100.2 # In our case the MySQL server/client is on the same Droplet as the cluster manager

Après avoir collé ce texte, veillez à remplacer les valeurshostname ci-dessus par les adresses IP correctes des gouttelettes que vous avez configurées. La définition de ce paramètrehostname est une mesure de sécurité importante qui empêche les autres serveurs de se connecter au gestionnaire de cluster.

Enregistrez le fichier et fermez votre éditeur de texte.

Il s’agit d’un fichier de configuration minimale et épurée pour un cluster MySQL. Vous devez personnaliser les paramètres de ce fichier en fonction de vos besoins de production. Pour un exemple de fichier de configurationndb_mgmd entièrement configuré, consultez le cluster MySQLdocumentation.

Dans le fichier ci-dessus, vous pouvez ajouter des composants supplémentaires tels que des nœuds de données (ndbd) ou des nœuds de serveur MySQL (mysqld) en ajoutant des instances à la section appropriée.

Nous pouvons maintenant démarrer le gestionnaire en exécutant le binairendb_mgmd et en spécifiant son fichier de configuration à l'aide du drapeau-f:

sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini

Vous devriez voir la sortie suivante:

OutputMySQL Cluster Management Server mysql-5.7.22 ndb-7.6.6
2018-07-25 21:48:39 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2018-07-25 21:48:39 [MgmtSrvr] INFO     -- Successfully created config directory

Cela indique que le serveur MySQL Cluster Management a été installé avec succès et qu'il s'exécute maintenant sur votre Droplet.

Idéalement, nous aimerions démarrer le serveur de gestion de cluster automatiquement au démarrage. Pour ce faire, nous allons créer et activer un service systemd.

Avant de créer le service, nous devons tuer le serveur en cours d'exécution:

sudo pkill -f ndb_mgmd

Maintenant, ouvrez et éditez le fichier systemd suivant à l’aide de votre éditeur favori:

sudo nano /etc/systemd/system/ndb_mgmd.service

Collez dans le code suivant:

/etc/systemd/system/ndb_mgmd.service

[Unit]
Description=MySQL NDB Cluster Management Server
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Ici, nous avons ajouté un ensemble minimal d'options indiquant à systemd comment démarrer, arrêter et redémarrer le processusndb_mgmd. Pour en savoir plus sur les options utilisées dans la configuration de cet appareil, consultez le systemdmanual.

Enregistrez et fermez le fichier.

Maintenant, rechargez la configuration du gestionnaire de systemd en utilisantdaemon-reload:

sudo systemctl daemon-reload

Nous allons activer le service que nous venons de créer pour que MySQL Cluster Manager démarre au redémarrage:

sudo systemctl enable ndb_mgmd

Enfin, nous allons démarrer le service:

sudo systemctl start ndb_mgmd

Vous pouvez vérifier que le service de gestion de cluster NDB est en cours d'exécution:

sudo systemctl status ndb_mgmd

Vous devriez voir la sortie suivante:

● ndb_mgmd.service - MySQL NDB Cluster Management Server
   Loaded: loaded (/etc/systemd/system/ndb_mgmd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-26 21:23:37 UTC; 3s ago
  Process: 11184 ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini (code=exited, status=0/SUCCESS)
 Main PID: 11193 (ndb_mgmd)
    Tasks: 11 (limit: 4915)
   CGroup: /system.slice/ndb_mgmd.service
           └─11193 /usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

Ce qui indique que le serveur MySQL Cluster Management dendb_mgmd fonctionne désormais en tant que service systemd.

La dernière étape de la configuration du gestionnaire de cluster consiste à autoriser les connexions entrantes en provenance d'autres nœuds de cluster MySQL sur notre réseau privé.

Si vous n’avez pas configuré le pare-feu deufwlors de la configuration de ce droplet, vous pouvez passer à la section suivante.

Nous allons ajouter des règles pour autoriser les connexions entrantes locales des deux nœuds de données:

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.1

Après avoir entré ces commandes, vous devriez voir le résultat suivant:

OutputRule added

Le gestionnaire de cluster doit maintenant être opérationnel et capable de communiquer avec d'autres nœuds de cluster sur le réseau privé.

[[step-2 -—- installation-et-configuration-des-nœuds-de-données]] == Étape 2 - Installation et configuration des nœuds de données

[.note] #Note: Toutes les commandes de cette section doivent être exécutées sur les deux nœuds de données.
#

Dans cette étape, nous allons installer le démon de nœud de données MySQL Cluster dendbd et configurer les nœuds afin qu'ils puissent communiquer avec le gestionnaire de cluster.

Pour installer les fichiers binaires du nœud de données, nous devons d'abord récupérer le fichier d'installation de.deb approprié depuis le MySQLdownload page officiel.

Depuis cette page, sousSelect Operating System, choisissezUbuntu Linux. Ensuite, sousSelect OS Version, choisissezUbuntu Linux 18.04 (x86, 64-bit).

Faites défiler vers le bas jusqu'à ce que vous voyiezDEB Package, NDB Data Node Binaries, et cliquez sur le lienDownload pour celui qui contientnotdbgsym (sauf si vous avez besoin de symboles de débogage). Vous serez redirigé vers une pageBegin Your Download. Ici, faites un clic droit surNo thanks, just start my download. et copiez le lien vers le fichier.deb.

Maintenant, connectez-vous à votre premier nœud de données Droplet (dans ce tutoriel,198.51.100.0), et téléchargez ce fichier.deb:

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

Avant d'installer le binaire du nœud de données, nous devons installer une dépendance,libclass-methodmaker-perl:

sudo apt update
sudo apt install libclass-methodmaker-perl

Nous pouvons maintenant installer le binaire de note de données en utilisantdpkg:

sudo dpkg -i mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

Les nœuds de données tirent leur configuration de l'emplacement standard de MySQL,/etc/my.cnf. Créez ce fichier en utilisant votre éditeur de texte préféré et commencez à le modifier:

sudo nano /etc/my.cnf

Ajoutez le paramètre de configuration suivant au fichier:

/etc/my.cnf

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.2  # location of cluster manager

La spécification de l'emplacement du nœud Cluster Manager est la seule configuration nécessaire au démarrage dendbd. Le reste de la configuration sera extrait directement du gestionnaire.

Enregistrez et quittez le fichier.

Dans notre exemple, le nœud de données découvrira que son répertoire de données est/usr/local/mysql/data, selon la configuration du gestionnaire. Avant de démarrer le démon, nous allons créer ce répertoire sur le nœud:

sudo mkdir -p /usr/local/mysql/data

Maintenant, nous pouvons démarrer le noeud de données en utilisant la commande suivante:

sudo ndbd

Vous devriez voir la sortie suivante:

Output2018-07-18 19:48:21 [ndbd] INFO     -- Angel connected to '198.51.100.2:1186'
2018-07-18 19:48:21 [ndbd] INFO     -- Angel allocated nodeid: 2

Le démon de noeud de données NDB a été installé avec succès et s'exécute maintenant sur votre serveur.

Nous devons également autoriser les connexions entrantes provenant d'autres nœuds MySQL Cluster via le réseau privé.

Si vous n'avez pas configuré le pare-feu deufw lors de la configuration de ce droplet, vous pouvez passer à la configuration du service systemd pourndbd.

Nous ajouterons des règles pour autoriser les connexions entrantes à partir du gestionnaire de cluster et d’autres nœuds de données:

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.2

Après avoir entré ces commandes, vous devriez voir le résultat suivant:

OutputRule added

Votre nœud de données MySQL Droplet peut désormais communiquer avec le gestionnaire de cluster et un autre nœud de données via le réseau privé.

Enfin, nous aimerions également que le démon de nœud de données démarre automatiquement au démarrage du serveur. Nous suivrons la même procédure que celle utilisée pour le gestionnaire de cluster et créerons un service systemd.

Avant de créer le service, nous allons tuer le processusndbd en cours d’exécution:

sudo pkill -f ndbd

Maintenant, ouvrez et éditez le fichier systemd suivant à l’aide de votre éditeur favori:

sudo nano /etc/systemd/system/ndbd.service

Collez dans le code suivant:

/etc/systemd/system/ndbd.service

[Unit]
Description=MySQL NDB Data Node Daemon
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndbd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Ici, nous avons ajouté un ensemble minimal d'options indiquant à systemd comment démarrer, arrêter et redémarrer le processusndbd. Pour en savoir plus sur les options utilisées dans la configuration de cet appareil, consultez le systemdmanual.

Enregistrez et fermez le fichier.

Maintenant, rechargez la configuration du gestionnaire de systemd en utilisantdaemon-reload:

sudo systemctl daemon-reload

Nous allons maintenant activer le service que nous venons de créer pour que le démon de nœud de données démarre au redémarrage:

sudo systemctl enable ndbd

Enfin, nous allons démarrer le service:

sudo systemctl start ndbd

Vous pouvez vérifier que le service de gestion de cluster NDB est en cours d'exécution:

sudo systemctl status ndbd

Vous devriez voir la sortie suivante:

Output● ndbd.service - MySQL NDB Data Node Daemon
   Loaded: loaded (/etc/systemd/system/ndbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-26 20:56:29 UTC; 8s ago
  Process: 11972 ExecStart=/usr/sbin/ndbd (code=exited, status=0/SUCCESS)
 Main PID: 11984 (ndbd)
    Tasks: 46 (limit: 4915)
   CGroup: /system.slice/ndbd.service
           ├─11984 /usr/sbin/ndbd
           └─11987 /usr/sbin/ndbd

Ce qui indique que le démon du nœud de données MySQL Clusterndbd est maintenant en cours d'exécution en tant que service systemd. Votre nœud de données devrait maintenant être entièrement fonctionnel et capable de se connecter au gestionnaire de cluster MySQL.

Une fois la configuration du premier nœud de données terminée, répétez les étapes de cette section sur l’autre nœud de données (198.51.100.1 dans ce didacticiel).

[[step-3 -—- configuration-et-démarrage-du-serveur-et-client-mysql]] == Étape 3 - Configuration et démarrage du serveur et du client MySQL

Un serveur MySQL standard, tel que celui disponible dans le référentiel APT d’Ubuntu, ne prend pas en charge le NDB du moteur MySQL Cluster. Cela signifie que nous devons installer le serveur SQL personnalisé, fourni avec l’autre logiciel MySQL Cluster que nous avons installé dans ce didacticiel.

Nous allons à nouveau récupérer le binaire MySQL Cluster Server à partir du MySQL Clusterdownload page officiel.

Depuis cette page, sousSelect Operating System, choisissezUbuntu Linux. Ensuite, sousSelect OS Version, choisissezUbuntu Linux 18.04 (x86, 64-bit).

Faites défiler vers le bas jusqu'à ce que vous voyiezDEB Bundle, et cliquez sur le lienDownload (il devrait être le premier de la liste). Vous serez redirigé vers une pageBegin Your Download. Ici, faites un clic droit surNo thanks, just start my download. et copiez le lien vers l'archive.tar.

Maintenant, connectez-vous au Droplet Cluster Manager (dans ce tutoriel,198.51.100.2), et téléchargez cette archive.tar (rappelez-vous que nous installons MySQL Server sur le même nœud que notre Cluster Manager - dans une production vous devez exécuter ces démons sur différents nœuds):

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar

Nous allons maintenant extraire cette archive dans un répertoire appeléinstall. Tout d'abord, créez le répertoire:

mkdir install

Maintenant, extrayez l'archive dans ce répertoire:

tar -xvf mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar -C install/

Déplacez-vous dans ce répertoire, contenant les fichiers binaires du composant MySQL Cluster extraits:

cd install

Avant d'installer le fichier binaire du serveur MySQL, nous devons installer quelques dépendances:

sudo apt update
sudo apt install libaio1 libmecab2

Maintenant, nous devons installer les dépendances de MySQL Cluster, regroupées dans l'archivetar que nous venons d'extraire:

sudo dpkg -i mysql-common_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-client_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-server_7.6.6-1ubuntu18.04_amd64.deb

Lors de l'installation demysql-cluster-community-server, une invite de configuration devrait apparaître, vous demandant de définir un mot de passe pour le compteroot de votre base de données MySQL. Choisissez un mot de passe fort et sécurisé et appuyez sur<Ok>. Entrez à nouveau ce mot de passeroot lorsque vous y êtes invité et appuyez à nouveau sur<Ok> pour terminer l'installation.

Nous pouvons maintenant installer le binaire du serveur MySQL en utilisantdpkg:

sudo dpkg -i mysql-server_7.6.6-1ubuntu18.04_amd64.deb

Nous devons maintenant configurer cette installation de serveur MySQL.

La configuration de MySQL Server est stockée dans le fichier par défaut/etc/mysql/my.cnf.

Ouvrez ce fichier de configuration en utilisant votre éditeur favori:

sudo nano /etc/mysql/my.cnf

Vous devriez voir le texte suivant:

/etc/mysql/my.cnf

# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

#
# The MySQL Cluster Community Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Ajoutez-y la configuration suivante:

/etc/mysql/my.cnf

. . .
[mysqld]
# Options for mysqld process:
ndbcluster                      # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.2  # location of management server

Enregistrez et quittez le fichier.

Redémarrez le serveur MySQL pour que ces modifications prennent effet:

sudo systemctl restart mysql

MySQL par défaut devrait démarrer automatiquement au redémarrage de votre serveur. Si ce n’est pas le cas, la commande suivante devrait résoudre ce problème:

sudo systemctl enable mysql

Un serveur SQL doit maintenant être exécuté sur votre droplet de serveur de cluster / MySQL.

Dans la prochaine étape, nous exécuterons quelques commandes pour vérifier que notre installation de MySQL Cluster fonctionne comme prévu.

[[step-4 -—- verifying-mysql-cluster-installation]] == Étape 4 - Vérification de l'installation du cluster MySQL

Pour vérifier votre installation MySQL Cluster, connectez-vous à votre nœud Cluster Manager / SQL Server.

Nous allons ouvrir le client MySQL à partir de la ligne de commande et nous connecter au compteroot que nous venons de configurer en entrant la commande suivante:

mysql -u root -p

Entrez votre mot de passe lorsque vous y êtes invité et appuyez surENTER.

Vous devriez voir une sortie semblable à:

OutputWelcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22-ndb-7.6.6 MySQL Cluster Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Une fois dans le client MySQL, exécutez la commande suivante:

SHOW ENGINE NDB STATUS \G

Vous devriez maintenant voir les informations sur le moteur de cluster NDB, en commençant par les paramètres de connexion:

Output
*************************** 1. row ***************************
  Type: ndbcluster
  Name: connection
Status: cluster_node_id=4, connected_host=198.51.100.2, connected_port=1186, number_of_data_nodes=2, number_of_ready_data_nodes=2, connect_count=0
. . .

Cela indique que vous êtes connecté avec succès à votre cluster MySQL.

Notez ici le nombre deready_data_nodes: 2. Cette redondance permet à votre cluster MySQL de continuer à fonctionner même en cas de défaillance d'un des nœuds de données. Cela signifie également que la charge de vos requêtes SQL sera équilibrée entre les deux nœuds de données.

Vous pouvez essayer de fermer l'un des nœuds de données pour tester la stabilité du cluster. Le test le plus simple consisterait à redémarrer le nœud de données Droplet afin de tester complètement le processus de récupération. Vous devriez voir la valeur denumber_of_ready_data_nodes changer en1 et sauvegarder à nouveau sur2 lorsque le nœud redémarre et se reconnecte au gestionnaire de cluster.

Pour quitter l'invite MySQL, tapez simplementquit ou appuyez surCTRL-D.

C'est le premier test qui indique que le cluster, le serveur et le client MySQL fonctionnent. Nous allons maintenant effectuer un test supplémentaire pour confirmer que le cluster fonctionne correctement.

Ouvrez la console de gestion du cluster,ndb_mgm à l'aide de la commande:

ndb_mgm

Vous devriez voir la sortie suivante:

Output-- NDB Cluster -- Management Client --
ndb_mgm>

Une fois à l'intérieur de la console, entrez la commandeSHOW et appuyez surENTER:

SHOW

Vous devriez voir la sortie suivante:

OutputConnected to Management Server at: 198.51.100.2:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2    @198.51.100.0  (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0, *)
id=3    @198.51.100.1  (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @198.51.100.2  (mysql-5.7.22 ndb-7.6.6)

[mysqld(API)]   1 node(s)
id=4    @198.51.100.2  (mysql-5.7.22 ndb-7.6.6)

Ce qui précède montre qu'il existe deux nœuds de données connectés avecnode-id+`s 2 and 3. There is also one management node with `+node-id 1 et un serveur MySQL avecnode-id 4. Vous pouvez afficher plus d'informations sur chaque identifiant en tapant son numéro avec la commandeSTATUS comme suit:

2 STATUS

La commande ci-dessus vous indique le statut, la version de MySQL et la version NDB du noeud 2:

OutputNode 2: started (mysql-5.7.22 ndb-7.6.6)

Pour quitter la console de gestion, tapezquit, puis appuyez surENTER.

La console de gestion est très puissante et vous offre de nombreuses autres options pour l’administration du cluster et de ses données, notamment la création d’une sauvegarde en ligne. Pour plus d'informations, consultez lesofficial MySQL documentation.

À ce stade, vous avez entièrement testé votre installation MySQL Cluster. La dernière étape de ce guide vous explique comment créer et insérer des données de test dans ce cluster MySQL.

[[step-5 -—- inserting-data-into-mysql-cluster]] == Étape 5 - Insertion de données dans MySQL Cluster

Pour démontrer la fonctionnalité du cluster, créons un nouveau tableau à l’aide du moteur NDB et insérons-y des exemples de données. Notez que pour utiliser la fonctionnalité de cluster, le moteur doit être spécifié explicitement en tant queNDB. Si vous utilisez InnoDB (valeur par défaut) ou tout autre moteur, vous n'utiliserez pas le cluster.

Commençons par créer une base de données appeléeclustertest avec la commande:

CREATE DATABASE clustertest;

Ensuite, passez à la nouvelle base de données:

USE clustertest;

Maintenant, créez une table simple appeléetest_table comme ceci:

CREATE TABLE test_table (name VARCHAR(20), value VARCHAR(20)) ENGINE=ndbcluster;

Nous avons explicitement spécifié le moteurndbcluster afin d'utiliser le cluster.

Maintenant, nous pouvons commencer à insérer des données en utilisant cette requête SQL:

INSERT INTO test_table (name,value) VALUES('some_name','some_value');

Pour vérifier que les données ont été insérées, exécutez la requête de sélection suivante:

SELECT * FROM test_table;

Lorsque vous insérez et sélectionnez des données dans une tablendbcluster, le cluster équilibre la charge des requêtes entre tous les nœuds de données disponibles. Cela améliore la stabilité et les performances de l'installation de votre base de données MySQL.

Vous pouvez également définir le moteur de stockage par défaut surndbcluster dans le fichiermy.cnf que nous avons modifié précédemment. Si vous faites cela, vous n'aurez pas besoin de spécifier l'optionENGINE lors de la création de tables. Pour en savoir plus, consultez le MySQLReference Manual.

Conclusion

Dans ce tutoriel, nous avons montré comment configurer un cluster MySQL sur des serveurs Ubuntu 18.04. Il est important de noter qu’il s’agit d’une architecture minimale et épurée utilisée pour illustrer la procédure d’installation. De nombreuses options et fonctionnalités avancées valent la peine d’être étudiées avant de déployer MySQL Cluster en production (par exemple, effectuer des sauvegardes). Pour en savoir plus, consultez lesMySQL Cluster documentation officiels.