Maison  >  Article  >  développement back-end  >  Méthode PHP pour implémenter la réplication maître-esclave de la base de données

Méthode PHP pour implémenter la réplication maître-esclave de la base de données

PHPz
PHPzoriginal
2023-05-17 20:00:061196parcourir

Avec le développement continu des affaires et l'augmentation du volume d'affaires, les performances d'une seule base de données sont souvent difficiles à répondre à la demande, le clustering de bases de données est donc devenu une direction très importante. Dans un cluster de bases de données, la réplication maître-esclave est une technologie très courante et importante. Grâce à la réplication maître-esclave, les données de la base de données maître peuvent être synchronisées avec la base de données esclave en temps réel, garantissant ainsi la sécurité et la fiabilité des données. améliorant également les performances de la capacité de chargement et des performances de la base de données.

Dans cet article, nous présenterons comment utiliser PHP pour implémenter la réplication maître-esclave de base de données. En implémentant la réplication maître-esclave de base de données, nous pouvons mieux garantir la cohérence des données lorsque nous traitons de performances et de disponibilité élevées. .

1. Qu'est-ce que la réplication maître-esclave d'une base de données ?

La réplication maître-esclave de base de données est une technologie de cluster de bases de données qui atteint une haute disponibilité et un équilibrage de charge en synchronisant les données de la base de données maître avec la base de données esclave. Dans la réplication maître-esclave, la base de données maître est la base de données chargée de recevoir les demandes d'écriture de données et de traiter les demandes de requête, tandis que la base de données esclave se synchronise sur la base de la base de données maître pour réaliser une sauvegarde en temps réel de la base de données maître.

La synchronisation des données entre la base de données maître et la base de données esclave utilise généralement une méthode asynchrone ou semi-synchrone. La base de données maître enregistre ses propres événements de modification de données dans le journal binaire local, et la base de données esclave est extraite de celui-ci. la base de données principale. Prenez le journal binaire, analysez-le et appliquez-le à la base de données locale pour la synchronisation. Cela peut garantir à la fois la cohérence et la disponibilité des données, et n'aura pas un grand impact sur les performances de la base de données principale.

2. Étapes pour implémenter la réplication maître-esclave de la base de données en PHP

  1. Configurer la base de données maître

D'abord vous vous devez configurer la base de données principale. Activez la connexion binaire pour enregistrer les événements de modification de données dans la base de données principale. Vous pouvez ajouter la configuration suivante au fichier de configuration MySQL pour activer la fonction de journal binaire :

log-bin=mysql-bin
server-id=1

où log Le paramètre -bin spécifie le nom du fichier journal binaire et peut être personnalisé ; le paramètre server-id spécifie l'identifiant unique de la base de données maître dans le cluster. Les différents nœuds maître et esclave doivent avoir des ID différents.

  1. Configurer la base de données esclave

Dans la base de données esclave, vous devez configurer les paramètres pertinents de la réplication maître-esclave et définir l'unique identifiant du nœud esclave ainsi que l'adresse IP et le numéro de port du nœud maître. Vous pouvez ajouter la configuration suivante au fichier de configuration MySQL :

server-id=2
relay-log=mysql-relay-bin
relay-log-index=mysql- relay -bin.index
replicate-do-db=mydb #Le nom de la base de données qui doit être synchronisée
master-host=192.168.1.1 #L'adresse IP du nœud maître
master-user=repl #Slave node Utilisateur se connectant au nœud maître
master-password=repl123 #Mot de passe pour connecter le nœud esclave au nœud maître
master-port=3306 #Numéro de port du nœud maître

where server-id est Spécifie l'identifiant unique du nœud esclave dans le cluster ; relay-log et relay-log-index spécifient le nom du fichier journal de relais et le nom du fichier d'index du journal de relais du nœud esclave. ; le paramètre replicate-do-db spécifie la nécessité de synchroniser avec le nœud esclave. Le nom de la base de données. Si vous devez synchroniser plusieurs bases de données, vous pouvez définir ce paramètre à plusieurs reprises. Les paramètres de la série master-* sont liés à la configuration du nœud esclave ; connectez-vous au nœud maître.

  1. Implémentation du code PHP

Pour implémenter le code PHP afin d'implémenter le processus de réplication maître-esclave de la base de données, vous devez d'abord vous connecter au base de données qui doit être exploitée via la fonction mysql_connect. Spécifiez ensuite l'instruction SQL de la requête et si les données doivent être lues à partir du nœud esclave. En définissant les paramètres MYSQL_CLIENT_MASTER et MYSQL_CLIENT_SLAVE, vous pouvez spécifier si la base de données actuellement connectée est le nœud maître ou le nœud esclave. L'exemple de code est le suivant :

//Connectez le nœud maître
$conn = mysql_connect("192.168.1.1", "root", "password", null, MYSQL_CLIENT_MASTER);# 🎜🎜## 🎜🎜#//Effectuer une opération d'écriture

mysql_query("insérer dans les valeurs de la table1('test', '123')");


//Connecter le nœud esclave

$ conn = mysql_connect("192.168.1.2", "root", "password", null, MYSQL_CLIENT_SLAVE);


//Effectuer une opération de lecture

$res = mysql_query( "select * from table1");


Grâce à l'implémentation du code ci-dessus, les opérations de commutation et de liaison de connexion du nœud maître et du nœud esclave peuvent être effectuées séparément, et la fonction de réplication maître-esclave du La base de données peut être réalisée efficacement.

3. Résumé

La réplication maître-esclave de base de données est une technologie de cluster de base de données importante pour obtenir une haute disponibilité et un équilibrage de charge. La mise en œuvre de la réplication maître-esclave via PHP nous permet de mieux garantir la cohérence et la disponibilité des données face à une concurrence élevée. Grâce aux étapes et aux exemples de code ci-dessus, j'espère que cela pourra être utile à la majorité des développeurs PHP dans la mise en œuvre de la réplication maître-esclave de base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn