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.
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.
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
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
if ($mysqli->connect_errno) { # Échec de la connexion
} 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
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!