Maison  >  Article  >  base de données  >  Explication détaillée de la configuration maître-esclave MySQL

Explication détaillée de la configuration maître-esclave MySQL

藏色散人
藏色散人avant
2020-03-13 08:51:302751parcourir

● J'avais prévu d'acheter des données cloud pour assurer une certaine sécurité à mon nouveau projet. Alibaba Cloud et Tencent Cloud ont tourné en rond, deux mots coûtent trop cher. N'y a-t-il pas simplement une sauvegarde des données ? Dans ce cas, autant faire la sauvegarde moi-même.

● J'ai deux Raspberry Pi à la maison et je sauvegarde simplement MySQL directement sur eux. Il existe des tutoriels en ligne, je vais donc commencer ici. J'ai recherché plusieurs articles sur segmentfault mysql et j'ai suivi ce qu'ils ont dit. Bien sûr, cela n'a pas abouti. Si cela avait réussi, je n'aurais pas écrit cet article. ps : Leurs tutoriels sont tous corrects.

● Commençons maintenant à configurer les serveurs maître et esclave, tout comme les tutoriels en ligne, car je viens de les regarder.

1. Paramètres principaux (master)

Modifier le fichier de configuration mysql, généralement dans /etc/mysql/my.conf

server-id=1 //设置mysql的id标识
log-bin=/var/lib/mysql/mysql-bin  //log-bin的日志文件,主从备份就是用这个日志记录来实现的
#binlog-do-db=mysql1 #需要备份的数据库名,如果备份多个数据库,重复设置这个选项 即可
#binlog-ignore-db=mysql2 #不需要备份的数据库名,如果备份多个数据库,重复设置这 个选项即可
#log-slave-updates=1 #这个参数当从库又作为其他从库的主库时一定要加上,否则不会给更新的记录写到binglog里二进制文件里
#slave-skip-errors=1 #是跳过错误,继续执行复制操作(可选)

Ajouter 2 dans le mysql principal pour synchronisé compte

mysql>grant replication slave on *.* to 'sync-1'@'%' identified by '123456';
mysql>grant replication slave on *.* to 'sync-2'@'%' identified by '123456';

Redémarrer msql

mysql>show master status; //可以查看主mysql状态

2. Modifier le fichier de configuration mysql my.conf depuis les paramètres (esclave)

Les deux nœuds esclaves sont configurés de la même manière.

server-id=2
#log-bin=/var/lib/mysql/mysql-bi //从mysql可以不用设置日志文件

Après avoir ajouté les paramètres de commande de mysql, master_log_file et master_log_pos peuvent être interrogés en utilisant show master status dans master mysql

mysql>change master to master_host='192.168.145.222',master_user='sync-1',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=308;  
mysql>start slave //启动
mysql>show slave status\G //查询状态,Slave_IO_Running 和Slave_IO_Running都为yes表示成功

3 Problèmes de configuration

Last_Errno: 1146

Quand. lors de la configuration de l'esclave, mon maître mysql avait déjà une table. Il n'y avait aucun enregistrement dans le journal binaire binlog de la table créée à ce moment-là. Le mysql esclave ne pouvait pas écrire de données. À ce moment-là, j'ai dû importer manuellement le fichier de base de données. dans le mysql esclave La raison en est que les didacticiels en ligne sont tous des mysql maître et esclave nouvellement installés, et il n'y a aucun problème avec les données existantes.

Last_Errno: 1062
Error 'Duplicate entry 'xxxxx' for key 'PRIMARY'' on query

Conflit de clé primaire. Ce problème est plus compliqué. Il devrait être dû au fait que les paramètres de la table sont incorrects. J'ai ensuite trouvé une solution à ce problème sur Stack Overflow. , adresse :

https://www.php.cn/course/list/51.html

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