Maison  >  Article  >  développement back-end  >  Comment implémenter un cluster de bases de données MySQL en PHP

Comment implémenter un cluster de bases de données MySQL en PHP

王林
王林original
2023-05-16 08:31:35795parcourir

Avec le développement continu des applications Internet, les exigences en matière de performances et de haute disponibilité des bases de données sont de plus en plus élevées, et les clusters de bases de données sont devenus une solution importante.

MySQL est l'une des bases de données relationnelles les plus utilisées à l'heure actuelle, et PHP est un langage très couramment utilisé dans le développement Web. Comment combiner parfaitement PHP avec le cluster de bases de données MySQL pour obtenir des performances élevées et élevées. ? Les objectifs de disponibilité deviennent un problème.

Cet article explique comment utiliser PHP pour implémenter un cluster de bases de données MySQL.

1. Présentation du cluster de bases de données MySQL

Le cluster de bases de données MySQL fait référence à un environnement de cluster composé de plusieurs serveurs. Plusieurs serveurs de bases de données MySQL sont intégrés dans un tout grâce à une technologie logicielle pour améliorer. améliorer les performances et la disponibilité des systèmes de bases de données.

Il existe deux architectures de cluster courantes, l'une est le mode de réplication maître-esclave et l'autre est le mode parallèle multi-hôtes.

Le mode de réplication maître-esclave est implémenté en utilisant la fonction de réplication de MySQL. Un MySQL est utilisé comme base de données maître et un autre MySQL est utilisé comme base de données esclave. synchronisé avec la base de données esclave en temps réel, et la base de données esclave est synchronisée en temps réel en lecture seule, pas en écriture, améliorant ainsi les performances de lecture et la disponibilité de la base de données.

Le mode parallèle multi-hôtes utilise plusieurs MySQL comme base de données principale pour s'exécuter simultanément dans le même cluster et synchronise les données entre elles via des protocoles réseau pour obtenir une disponibilité et une évolutivité élevées des données.

2. Créer un cluster de base de données MySQL

Pour créer un cluster de base de données MySQL, vous devez d'abord comprendre l'architecture de la base de données MySQL et les principes de réplication, puis vous pourrez mieux combiner parfaitement le cluster MySQL avec PHP.

  1. Principe de réplication MySQL

La fonction de réplication de MySQL est implémentée via les journaux binlog et les journaux relaylog Binlog enregistre principalement les opérations du serveur MySQL. y compris l'ajout, la suppression, la modification, etc. relaylog convertit principalement les données originales dans un format de données qui peut être reçu par le serveur esclave et les transmet au serveur esclave.

  1. Configuration du cluster MySQL

Entrez la commande vi /etc/my.cnf dans le terminal pour ouvrir le fichier de configuration MySQL.

Ajoutez le code suivant dans la section [mysqld] :

server-id=1 # Numéro de serveur
log-bin=mysql-bin # Activer le binaire log# 🎜🎜#binlog-ignore-db=information_schema # Base de données non journalisée
binlog-ignore-db=mysql

Ajoutez le code suivant dans la section [mysqld] L'adresse ici. c'est ce que vous voulez Adresse de la base de données principale connectée :

log-slave-updates=1 # Activer le serveur esclave pour enregistrer les journaux et les copier sur d'autres serveurs esclaves

relay-log=mysql-relay -bin # Activer les journaux de relais
relay-log-index=mysql-relay-bin.index
master-info-file=master.info
relay-info-file=relay-log. info
read_only =1 # Mode lecture seule, le serveur esclave ne participe pas à l'opération d'écriture de la bibliothèque principale
server-id=2 # Numéro de serveur
log-bin=mysql- bin # Activer les journaux binaires
binlog-do -db=mydata # Nom de la base de données à copier
replicate-ignore-db=information_schema # Répliquer la base de données ignorée
replicate-ignore-db= mysql
relay-log-recovery=ON#🎜 🎜#
Les fichiers de configuration ci-dessus sont destinés au mode de réplication maître-esclave. Pour les fichiers de configuration du mode parallèle multi-hôtes, veuillez vous référer au site officiel. documentation ou autres informations.

3. Comment connecter PHP au cluster MySQL

PHP peut utiliser l'extension mysqli pour se connecter au cluster MySQ, qui est une version améliorée de la base de données MySQL, offrant de meilleures performances et la fonctionnalité.

Ce qui suit est un exemple de code PHP qui utilise l'extension mysqli pour se connecter à un cluster MySQL :

$mysqli = new mysqli("mysql_server_1", "user", "password", "mydatabase "); # Connectez-vous au serveur principal

if ($mysqli->connect_errno) { # Échec de la connexion

echo "Échec de la connexion au serveur principal MySQL : (" . $mysqli-> connect_errno . ") " . $mysqli->connect_error;

} else { #Connecté avec succès
echo "Connecté avec succès au serveur principal MySQL Informations sur l'hôte : " . $ mysqli->host_info . "# 🎜🎜#";
}

$mysqli->query("CREATE TABLE matable (id INT, nom VARCHAR(255))"); # Créer la table sur le serveur principal# 🎜🎜#$mysqli->close(); # Fermer la connexion au serveur principal

$mysqli = new mysqli("mysql_server_2", "user" , "password", "mydatabase"); # Connectez-vous au serveur esclave


if ($mysqli->connect_errno) { # Échec de la connexion

echo "Échec de la connexion au serveur esclave MySQL : (" . $mysqli->connect_errno . " ) " . $mysqli->connect_error;

} else { #Connecté avec succès

echo "Connecté avec succès au serveur esclave MySQL Informations sur l'hôte : " . $mysqli->host_info . "

";
}

$mysqli->query("SELECT * FROM mytable"); # Interroger la table depuis le serveur# 🎜🎜#$mysqli->close(); # Ferme la connexion avec le serveur esclave

Dans l'exemple de code ci-dessus, le serveur maître est d'abord connecté, puis une table est créée sur le serveur maître , puis le serveur esclave est connecté via l'extension mysqli et la table est interrogée sur le serveur esclave.

4. Conclusion

Le cluster MySQL est une solution parfaite en termes de performances et de disponibilité, et PHP, en tant que langage de programmation Web largement utilisé, peut mieux se connecter à MySQL via l'extension mysqli Cluster pour atteindre des objectifs de haute performance et de haute disponibilité.

Grâce à l'introduction de cet article, il est très utile pour les développeurs PHP d'apprendre à créer et à connecter un cluster MySQL.

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