GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer la réplication maître-esclave MySQL

Présentation

Dans le cloud computing, la réplication de données maître-esclave fait référence au stockage des mêmes informations sur plusieurs serveurs. Un serveur contrôle le groupe et les autres appareils gèrent le travail au sein du même nœud.

La réplication devient nécessaire :

  • Lorsqu'une entreprise a besoin d'une sauvegarde quotidienne régulière pouvant restaurer la base de données MySQL principale en cas de dysfonctionnement du stockage.
  • Partout où les informations doivent être stockées, examinées et modifiées par plusieurs personnes, sur plusieurs ordinateurs. Si un membre du groupe identifie un besoin de changement, il doit aller au maître désigné du nœud.

Ce guide vous expliquera comment configurer la réplication maître-esclave dans MySQL.

Prérequis

  • Un système basé sur Linux, tel que CentOS
  • Un compte utilisateur avec sudo privilèges
  • Un installateur de package tel que yum ou apt , généralement inclus par défaut
  • L'adresse IP privée du serveur cloud (pour éviter les frais de bande passante sur l'adresse IP publique lors de la configuration)

Étapes de configuration de la réplication de base de données maître-esclave dans MySQL

Miam (Yellowdog Updater, Modified) est l'outil de gestion de packages pour les systèmes RedHat Package Manager Linux. Dans .deb forfaits, le miam l'outil est généralement remplacé par le apt outil. Par conséquent, dans une commande donnée apt-get peut généralement remplacer miam .

Par exemple, une commande d'installation est soit yum install [package_name] ou apt-get install [package_name] pour un résultat identique. Cet article suppose que vous utilisez une distribution Linux basée sur RPM. Par conséquent, yum commandes sont utilisées.

La base de données maître MySQL s'exécute en mode lecture-écriture. Pendant ce temps, le serveur esclave fonctionne en lecture seule. Passons maintenant à la réplication.

Étape 1 :Configurer la base de données MySQL pour la réplication

Utilisez le mysqldump commande pour effectuer un vidage et une restauration des informations dans la base de données esclave. Cette commande vide les données dans un fichier, les transfère et les restaure sur le nœud esclave.

Étape 2 :Créez 2 serveurs cloud distincts

Dans cette étape, l'utilisateur privilégié doit se connecter au contrôle du cloud. Avec CentOS, cela est possible grâce à l'image de base CentOS 6.

Créez deux serveurs cloud Linux avec la RAM appropriée et attribuez-leur des noms distincts.

Étape 3 :Mettez à jour tous les packages logiciels vers leur version actuelle

Les utilisateurs et les administrateurs système peuvent mettre à jour tous les packages logiciels sur un système Linux basé sur RPM avec la commande suivante :

yum update

Étape 4 :Installer MySQL

Pour les systèmes Linux basés sur le gestionnaire de packages RedHat, installez le package de serveur MySQL sur les deux serveurs cloud avec la commande :

yum install mysql-server

Configurez le service pour qu'il s'exécute à chaque démarrage du système avec la commande :

chkconfig mysqld on

Étape 5 :Démarrer MySQL

Maintenant, découvrez si MySQL a été correctement installé. Si c'était le cas, vous devriez pouvoir démarrer le service avec la commande :

service mysqld start

Étape 6 :Configurer le mot de passe racine du serveur MySQL

C'est une bonne idée de définir un mot de passe d'utilisateur administratif pour MySQL. Pour définir le mot de passe, exécutez le script d'installation sécurisée qui accompagne le package MySQL, en répondant par Y à toutes les invites Y/n.

Ou utilisez /usr/bin/mysqladmin -u root password suivi d'un espace et de votre nouveau mot de passe ; et /usr/bin/mysqladmin -u root -h web01 password suivi d'un espace et, encore une fois, de votre nouveau mot de passe.

Étape 7 :Configurer le pare-feu pour l'accès à la base de données

Application de la règle du port TCP 3306 ajoute une politique de pare-feu qui autorise le trafic sur le port 3306. Cette règle permet une bonne communication entre les appareils.

Pour enregistrer la configuration du pare-feu, utilisez la commande :

service iptables save

Soyez prudent lorsque vous ouvrez des ports pour vous assurer d'éviter les piratages.

Étape 8 :Configurer le serveur pour la réplication

Chaque serveur esclave nécessite un moyen de se connecter au serveur maître. Pour établir une connexion, vous avez besoin d'un nom d'utilisateur et d'un mot de passe MySQL. Cela vous oblige à configurer un compte utilisateur MySQL sur le serveur maître.

Nous vous recommandons de créer un compte dédié pour la réplication. Pour cette fonction, accordez à n'importe quel compte le privilège d'esclave de réplication. Vous pouvez créer le même compte ou des comptes différents pour chaque esclave. Vous pouvez toujours trouver le nom d'utilisateur et le mot de passe du compte en texte brut dans le référentiel principal.

Pour configurer un nouveau compte utilisateur appelé réplication , et lui permettre de se connecter à des fins de réplication à partir de n'importe quel hôte sur votresite.com domaine, exécutez cette commande sur le serveur maître :

mysql> CREATE USER 'replication'@'%.yoursite.com' IDENTIFIED BY [space followed by password]; then: mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%.yoursite.com';

Étape 9 :Assurez-vous que les données de vos serveurs correspondent

Dupliquez les données par vidage du maître vers le serveur esclave.

Les tables de vidage doivent être définies avec un verrou de lecture. La base de données du serveur maître ne doit pas intégrer toute nouvelle modification au cours de cette étape. S'il existe des informations sur le serveur maître à coordonner avec les serveurs esclaves avant le démarrage du processus de réplication, effectuez les actions suivantes :

  • Arrêtez de traiter toutes les commandes sur le serveur maître.
  • Copiez le nom du fichier et les coordonnées actuelles du serveur maître dans son journal binaire (voir l'étape 10 ci-dessous). Cela sera nécessaire plus tard lors de la configuration de la réplication.
  • Avant de permettre à votre serveur maître de continuer à suivre les commandes, videz ses données.

Effectuez toutes ces actions avec soin pour vous assurer que le vidage des données correspondra aux données actuelles du serveur maître. Sinon, les bases de données esclaves seront incompatibles ou corrompues.

Étape 10 :Prendre un instantané de la base de données principale

Lorsque vous effectuez l'action suivante, notez qu'un seul instantané de la base de données maître suffit pour configurer plusieurs serveurs esclaves.

Si vous n'avez pas encore configuré le server-id et démarrer un journal binaire sur le serveur maître, vous devez arrêter le serveur. Vous pouvez maintenant prendre un instantané des bases de données.

Amenez les fichiers de données dans le répertoire du serveur esclave :

shell> tar xvf dbdump.tar

Si nécessaire, établissez la propriété et les autorisations pour les fichiers. Vous devrez peut-être autoriser l'accès au serveur esclave et la possibilité d'apporter des modifications. Démarrez l'esclave avec --skip-slave-start pour éviter de commencer la réplication.

Configurez votre serveur esclave avec le nom d'hôte et les identifiants de connexion du serveur maître. Utilisez les coordonnées de réplication du serveur maître pour la base de données esclave. Vous dirigez l'esclave vers le point où la réplication commence, en utilisant le fichier journal binaire et la position.

Pour un serveur maître configuré, vous pouvez utiliser mysqldump pour prendre un instantané.

Vous pouvez maintenant mettre à jour la configuration de l'esclave. Encore une fois, assurez-vous de démarrer l'esclave avec --skip-slave-start pour éviter de commencer la réplication.

Importez le dump avec la commande :

shell> mysql < fulldb.dump

Étape 11 :Commencer les threads esclaves

Pour voir immédiatement les mises à jour sur le serveur esclave, utilisez :

mysql> START SLAVE;

Linux
  1. Comment configurer MySQL Multi-Master Replication sur Oracle Linux

  2. Comment installer et configurer mysql 8 sur Ubuntu 20.04

  3. Comment configurer MySQL Cluster sur Ubuntu

  4. Comment configurer la réplication maître-esclave MariaDB sur Ubuntu 18.04

  5. Configurer la réplication source-réplica MySQL

Comment configurer la réplication MySQL dans RHEL/Centos

Comment configurer NordVPN sur Ubuntu

Comment définir ou modifier le fuseau horaire sur Debian 11

Comment mettre en place un accès MySQL distant sur cPanel ?

Comment configurer la réplication MariaDB Master-Slave sur CentOS 7

Comment configurer la réplication maître-esclave MySQL sur RHEL 7 ?