Maison  >  Article  >  base de données  >  Qu’est-ce que la séparation lecture-écriture Mysql ? Comment configurer la base de données maître-esclave ?

Qu’est-ce que la séparation lecture-écriture Mysql ? Comment configurer la base de données maître-esclave ?

不言
不言avant
2018-10-09 15:22:022518parcourir

Le contenu de cet article porte sur ce qu'est la séparation lecture-écriture Mysql ? Comment configurer la base de données maître-esclave ? Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Qu'est-ce que la séparation lecture-écriture ?

Mysql n'a rien de plus que quatre fonctions : ajouter, supprimer, modifier et lire. Cela aidera à améliorer les opérations. performances du système.
Essayez d'y réfléchir, emménager, retourner, modifier et vendre des marchandises a été modifié pour vendre uniquement des marchandises à la porte d'entrée, et d'autres vont à la porte arrière Souvent, les choses qui semblent haut de gamme sont assez simples à réaliser

Ce qui suit est écrit pour les débutants, ce sont toutes des opérations très intuitives.

1. Configuration :

MySQL avec le. même configuration sur les deux serveurs, comme mysql5.7
PS : Si les conditions sont limitées, un seul peut être utilisé Il suffit d'installer deux services mysql (ports différents comme 3306, 3307), mais c'est un peu contraire. à l'intention initiale d'efficacité

2. Code :

1. Généralement direct Au niveau de la couche de code, la lecture et l'écriture des classes d'opération mysql telles que update, insert et select * from sont acheminées et séparées vers correspondent à différents serveurs.
2. Agent middleware, c'est-à-dire que sans changer le code, le middleware enverra des demandes de lecture et d'écriture au serveur maître-esclave.

Parlons maintenant de la façon de configurer. le serveur maître-esclave :

1. Ouvrir les ports : la plupart des hôtes utilisent par défaut le port Mysql 3306, alors configurez d'abord les deux machines. Ouvrez le port 3306 dans le groupe de sécurité ou le pare-feu et redémarrez-le

2. Le le port est ouvert, configurez maintenant deux serveurs (la même chose est vraie pour un hôte et deux serveurs Mysql) :

Ce qui suit est l'IP principale : 192.168.0.1, l'IP esclave : 192.168.0.2, créez les spécifications du compte de synchronisation , mot de passe spec_password à titre d'exemple :

Serveur principal (ajout, suppression et modification) :

#1.Mysql配置改以下并重启服务(命令行里直接重启:service mysql restart)
[mysqld]
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index

#2.命令行mysql执行或phpmyadmin里执行:
GRANT REPLICATION SLAVE ON *.* TO 'spec'@'192.168.0.2' IDENTIFIED BY 'spec_password';
flush privileges;
De cette façon, le serveur principal est complété .

Configuration à partir de le serveur :

#1.Mysql配置改以下并重启服务(命令行里直接重启:service mysql restart)
[mysqld]
server-id=2
relay-log-index=slave-bin.index
relay-log=slave-bin

#2.命令行mysql执行或phpmyadmin里执行:
change master to master_host='192.168.0.1',master_port=3306,master_user='spec',master_password='spec_password',master_log_file='master-bin.000001',master_log_pos=0;
start slave
De manière générale, la configuration est terminée ici.

3. Test :

À partir de l'instruction de requête du serveur : afficher le statut de l'esclave

Si Slave_IO_State=En attente que le maître envoie l'événement, cela réussira.
Le reste de l'état est généralement dû aux raisons suivantes :

1. Le groupe de sécurité ou le pare-feu du maître et de l'esclave ne l'est pas. activé le port 3306

2. Échec du ping entre le maître et l'esclave.
3. Le mot de passe du compte spécifié ci-dessus est erroné

À partir de maintenant, tout ajout, suppression ou modification sur le serveur maître sera synchronisé avec le serveur esclave.

4. Suggestions :

1. N'oubliez pas que le serveur esclave n'effectue que des lectures, et non des ajouts, des suppressions ou des modifications, afin de maintenir la synchronisation des données en cas de panne d'un serveur. , l'autre peut prendre le relais (en fait, lorsque le serveur principal tombe en panne, certaines des dernières données seront définitivement perdues).

2. La bande passante du serveur esclave doit être >= celle du serveur maître, afin de réduire au maximum le délai de synchronisation. S'il s'agit d'une petite conduite d'eau, la synchronisation sera naturellement un peu plus lente.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer