Maison  >  Article  >  base de données  >  Construire un serveur maître-esclave MySQL sous Linux

Construire un serveur maître-esclave MySQL sous Linux

王林
王林avant
2020-01-30 20:17:543547parcourir

Construire un serveur maître-esclave MySQL sous Linux

Pour atteindre l'objectif

Vous devez maintenant créer deux serveurs MySQL (un maître et un esclave), un comme serveur maître et un en tant que serveur esclave, le serveur maître effectue des opérations d'écriture et le serveur esclave effectue des opérations de lecture.

Workflow

Serveur maître :

Activer les journaux binaires

Configurer l'ID de serveur unique

Obtenir le nom et emplacement du fichier journal binaire maître

Créez un compte utilisateur pour la communication esclave et maître.

Serveur esclave :

Configurer un identifiant de serveur unique

Utiliser le compte utilisateur attribué par le maître pour lire le journal binaire du maître

Activer l'esclave service.

(Recommandation de tutoriel vidéo d'apprentissage gratuit : Tutoriel vidéo mysql)

Travail de préparation

Base de données maître-esclave version Il est préférable de conserver les mêmes

Les données des bases de données maître et esclave doivent être cohérentes

Base de données maître : 192.168.244.201 : 3306

Base de données esclave : 192.168. 244.202 : 3306

Démarrer la configuration

Configurer le serveur principal Maître

Trouver le fichier de configuration my.cnf du maître base de données (my.ini sous Windows), la mienne Dans /etc/my.cnf
Insérez les deux lignes suivantes dans la section [mysqld] :

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=201 #设置server-id,唯一值,标识主机

Redémarrez le service mysql

systemctl restart mysqld

Créer pour le principal Entrez MySQL à partir du compte/mot de passe synchronisé

 : mysql -u root -p et appuyez sur Entrée pour saisir le mot de passe.

Le nom d'utilisateur que j'ai créé est "master_root" et le mot de passe est "MySql@6688"

[Remarque : le mot de passe ayant été modifié pour prendre en charge le mot de passe simple 123456, un nouveau un est créé ici. L'utilisateur a eu quelques problèmes, disant que le mot de passe n'était pas conforme à la politique, etc. Plus tard, j'ai simplement réinstallé MySQL et utilisé le mot de passe complexe par défaut, et il n'y a plus eu de problèmes. C'est vraiment bien de s'y habituer. 】

J'utilise % ci-dessous Je n'écris pas l'adresse IP spécifique. Vous pouvez décider par vous-même.

#创建用户(IP为可访问该master的IP,任意IP就写'%')
mysql> CREATE USER 'master_root'@'192.168.244.202' IDENTIFIED BY 'MySql@6688';
#分配权限(IP为可访问该 master的IP,任意IP就写'%')
mysql> GRANT REPLICATION SLAVE ON *.* TO 'master_root'@'192.168.244.202';
 #刷新权限
mysql>flush privileges;

Vérifiez l'état du maître et enregistrez le nom du fichier binaire (mysql-bin.000001) et l'emplacement (154). Il sera utilisé plus tard lors de la configuration de la bibliothèque esclave.

show master status;

Construire un serveur maître-esclave MySQL sous Linux

Configurer le serveur maître Slave

Modifier le fichier my.cnf

vim /etc/my.cnf
[mysqld]
server-id=202 #设置server-id,唯一值,唯一标识从库

Redémarrez le service mysql

systemctl restart mysqld

Connectez-vous à mysql et exécutez l'instruction SQL de synchronisation (nom du serveur maître, nom d'utilisateur pour le maître et l'esclave, mot de passe, nom du fichier binaire, emplacement)

mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.244.201',
    -> MASTER_USER='master_root',
    -> MASTER_PASSWORD='MySql@6688',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=154;

Démarrez le processus de synchronisation de l'esclave

mysql>start slave;

Vérifiez l'état de l'esclave

show slave status\G

Faites attention à ne pas suivre le point-virgule ; sinon la dernière ligne L'erreur signalée est la suivante :

ERROR: No query specified

Lorsque Slave_IO_Running et Slave_SQL_Running sont OUI, cela signifie que le paramètre de synchronisation maître-esclave est réussi.

Ensuite, vous pouvez effectuer une vérification. Par exemple, insérer une donnée dans une table de la base de données de test de la base de données maître et vérifier s'il y a de nouvelles données dans la même table de données dans le test de l'esclave. base de données à vérifier. Pour vérifier si la fonction de réplication maître-esclave est valide, vous pouvez également fermer l'esclave (mysql>stop slave;), puis modifier le maître pour voir si l'esclave est modifié en conséquence (après avoir arrêté l'esclave, le les modifications du maître ne seront pas synchronisées avec l'esclave), puis l'opération maître-esclave peut être terminée. La fonctionnalité de copie est vérifiée.

Autres paramètres associés :

Par défaut, une fois que le maître a activé le journal binaire, il enregistre les opérations de toutes les tables dans toutes les bibliothèques. Vous pouvez spécifier uniquement. enregistrez la base de données spécifiée ou même la table spécifiée via la configuration. Pour des opérations spécifiques, vous pouvez ajouter et modifier les options suivantes dans [mysqld] du fichier de configuration mysql :

Quelles bases de données ne sont pas synchronisées ?

binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema

Quelles bases de données sont uniquement synchronisées, sauf En outre, d'autres désynchronisées

binlog-do-db = game

Par exemple, lorsque vous avez vérifié l'état du maître auparavant, vous peut voir que seule la bibliothèque de test est enregistrée et que les bibliothèques manuelles et mysql sont ignorées.

Articles et tutoriels connexes recommandés : Tutoriel 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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer