Avec le développement rapide d'Internet, les applications Web intègrent de plus en plus les opérations de bases de données. MySQL est un système de base de données relationnelle de renommée mondiale et largement utilisé. Dans les applications Web hautement concurrentes, la réplication maître-esclave MySQL est un moyen important d'améliorer les performances et la disponibilité des bases de données. Cet article explique comment utiliser PHP pour implémenter la réplication maître-esclave de la base de données MySQL.
1. Qu'est-ce que la réplication maître-esclave MySQL ?
La réplication maître-esclave MySQL fait référence à la copie des données d'un serveur de base de données MySQL vers un autre serveur pour maintenir la cohérence des données des deux serveurs MySQL. L'un des serveurs est appelé serveur maître et est responsable de la mise à jour des données en temps réel ; l'autre serveur est appelé serveur esclave et est responsable de la synchronisation des données du serveur maître. La réplication maître-esclave peut améliorer l'évolutivité et la tolérance aux pannes du système. Par exemple, lorsque le serveur principal tombe en panne, le serveur esclave peut reprendre le travail du serveur principal pour assurer le fonctionnement normal de l'entreprise.
2. Le principe de mise en œuvre de la réplication maître-esclave
Le principe de mise en œuvre de la réplication maître-esclave est le suivant :
3. Comment implémenter la réplication maître-esclave en PHP
Le serveur principal doit activer la fonction de journal binaire dans le fichier de configuration my.cnf. Ouvrez le fichier my.cnf et ajoutez la configuration suivante dans la section [mysqld] :
server-id=1 log-bin=/var/log/mysql/mysql-bin.log
Parmi eux, server-id est utilisé pour identifier le serveur principal et log-bin est utilisé pour spécifier le chemin du fichier journal.
Le serveur esclave doit ajouter les informations de connexion du serveur maître dans le fichier de configuration my.cnf. Ouvrez le fichier my.cnf et ajoutez la configuration suivante dans la section [inisd_client] :
server-id=2 master-host=10.0.0.1 master-user=repl_user master-password=repl_password master-port=3306
Parmi eux, server-id est utilisé pour identifier le serveur esclave, master-host précise l'adresse IP du serveur maître, master-user et master-password spécifient le maître Le nom d'utilisateur et le mot de passe du serveur, master-port spécifie le numéro de port du serveur maître.
Créez un utilisateur sur le serveur maître pour la réplication des données et autorisez l'utilisateur à lire le journal binaire. Ouvrez le client MySQL et exécutez la commande suivante :
mysql> CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
Exécutez la commande suivante dans le client MySQL du serveur esclave pour démarrer le processus de réplication :
mysql> CHANGE MASTER TO MASTER_HOST='10.0.0.1', MASTER_USER='repl_user', MASTER_PASSWORD='repl_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; mysql> START SLAVE;
Parmi eux, MASTER_LOG_FILE et MASTER_LOG_POS peuvent être dans la recherche principale dans le journal binaire du serveur.
Après avoir terminé les étapes ci-dessus, le serveur esclave copiera les données du serveur maître pour maintenir la cohérence des données dans les deux bases de données.
4. Résumé
La réplication maître-esclave MySQL est une technologie importante pour améliorer les performances et la disponibilité du système. Il est très simple d'implémenter la réplication maître-esclave MySQL à l'aide de PHP. Il vous suffit d'activer le journal binaire sur le serveur maître, de configurer les informations du serveur maître sur le serveur esclave, de créer un utilisateur de réplication et de démarrer le processus de réplication. Dans les environnements de production réels, il convient de veiller à l'utilisation de moyens techniques appropriés pour faciliter l'exploitation et la maintenance des bases de données afin de garantir la stabilité et la sécurité des services de bases 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!