Serveur MYSQL CLUSTER my.cnf

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Fichier de configuration MySQL (nœud SQL du cluster)
Emplacement /etc/my.cnf
Lu par mysqld / mysqld_safe sur chaque nœud
Voir aussi config.ini · Script cluster

my.cnf est le fichier de configuration MySQL standard, complété ici des directives spécifiques permettant à mysqld de rejoindre le cluster NDB en tant que nœud SQL/API. Contrairement à config.ini (topologie complète, lu uniquement par le nœud de gestion), my.cnf ne concerne que la configuration locale d'un nœud SQL et doit exister sur chaque serveur exécutant mysqld.

Note de migration : la page source contenait par erreur une copie intégrale du contenu de config.ini (probable copier-coller lors de la rédaction d'origine) plutôt qu'un my.cnf réel. Le contenu ci-dessous est une reconstitution d'un my.cnf plausible pour ce type d'installation, cohérente avec les scripts de la suite (cluster, cluster backup, reportmemory.sh) qui lisent tous une ligne nodeid= dans ce fichier — (à vérifier auprès de la configuration réelle si elle est encore disponible).

Directives NDB dans my.cnf

Pour qu'un mysqld standard devienne un nœud SQL NDB, deux ajouts sont nécessaires par rapport à une configuration MySQL classique :

  • ndbcluster dans [mysqld] — active le moteur de stockage NDB.
  • ndb-connectstring — indique où joindre le(s) nœud(s) de gestion (ndb_mgmd), sous forme d'une liste d'hôtes séparés par des virgules.

La ligne nodeid= utilisée par les scripts maison de cette suite (ID_local,ID_du_nœud_jumeau) n'est pas une directive MySQL standard : c'est une convention interne ajoutée en commentaire/variable pour que les scripts shell puissent retrouver l'identifiant de nœud NDB local sans le redemander à l'utilisateur.

Exemple

Noms d'hôtes génériques ci-dessous — à remplacer par les hôtes réels de l'environnement cible. Exemple donné pour le nœud sql1 (Id NDB 11, jumeau 12, cf. config.ini).

[mysqld_safe]
socket=/var/lib/mysql/mysql.sock

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Active le moteur de stockage NDB et indique le(s) nœud(s) de gestion à joindre
ndbcluster
ndb-connectstring=sql1.example.local,sql2.example.local

# Convention interne (non standard MySQL) utilisée par les scripts de maintenance
# de ce cluster pour retrouver l'id NDB local et celui du nœud jumeau.
nodeid=11,12

[mysql_cluster]
ndb-connectstring=sql1.example.local,sql2.example.local

Voir aussi