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

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

藏色散人
Libérer: 2020-03-13 08:51:30
avant
2785 Les gens l'ont consulté

● 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 #是跳过错误,继续执行复制操作(可选)
Copier après la connexion

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';
Copier après la connexion

Redémarrer msql

mysql>show master status; //可以查看主mysql状态
Copier après la connexion

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可以不用设置日志文件
Copier après la connexion

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表示成功
Copier après la connexion

3 Problèmes de configuration

Last_Errno: 1146
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal