Christophe Casalegno

ReplikSQL : réplication MySQL/MariaDB en bash

ReplikSQL

ReplikSQL est un script Bash sous licence GPL permettant d’automatiser la mise en place d’une réplication entre serveurs MySQL ou MariaDB sous Linux. Il simplifie radicalement un processus parfois complexe, en le réduisant à une simple ligne de commande.

Fonctionnalités principales

– Configuration automatique d’une réplication maître-esclave.
– Détection intelligente de la version MySQL/MariaDB utilisée.
– Création et gestion sécurisée de l’utilisateur de réplication.
– Vérification des server-id *avant* l’initialisation de la procédure.
– Supporte les configurations avec des ips dédiées à la réplication.
– Conçu pour être utilisé depuis un bastion.
– Support des ports ssh exotiques et différents par machine.

Utilisation

Après téléchargement du script, l’usage basique est extrêmement simple.

./repliksql.sh --master-pub 83.143.18.20 --master-priv 192.168.1.20 --master-pw XXX --slave-pub 83.143.18.30 --slave-priv 192.168.1.30 --slave-pw YYY --master-ssh-port 2222 --slave-ssh-port 2223

Note : personnellement, je copie ce script dans /usr/local/bin sous le nom replisql et je l’utilise directement depuis l’utilisateur approprié comme une commande lambda.

Options

RepliSQL v2 – bootstrap bidirectional MySQL replication
Required:
  --master-pub|-M     Master's public IP
  --master-pw|-P      Master MySQL root password
  --slave-pub|-S      Slave's public IP
  --slave-pw|-p       Slave MySQL root password
Optional:
  --master-priv|-m    Master's private IP (default = master-pub)
  --slave-priv|-s     Slave's private IP  (default = slave-pub)
  --master-ssh-port   Master SSH port (default 65022)
  --slave-ssh-port    Slave SSH port  (default 65022)
  --help|-h           Show this help

Attention

Le port SSH configuré par défaut est le 65022 s’il n’est pas précisé.

Todo list

– Ajouter une option permettant d’utiliser GTID (en cours)
– Ajouter une option –dry-run pour simuler la configuration sans l’appliquer
– Ajouter un mode verbeux pour afficher en temps réel les actions réalisées.

Ressources

– Script: repliksql.sh


Christophe Casalegno
Vous pouvez me suivre sur : Telegram | Facebook | LinkedIn | X | YouTube | Twitch