Maison > Article > base de données > Explication détaillée de l'exemple de code de séparation maître-esclave de la base de données Mysql
Cet article présente principalement l'exemple de code de séparation maître-esclave de la base de données Mysql. La séparation lecture-écriture des paramètres de la base de données MySQL peut effectuer les opérations d'écriture et de lecture de la base de données. différents serveurs pour améliorer la concurrence et la vitesse correspondante.
Introduction
Paramètres de base de données MySQL séparation de lecture et d'écriture, qui peut permettre aux opérations d'écriture et de lecture sur la base de données d'être exécutées sur différents serveurs, améliorant ainsi la concurrence et la vitesse correspondante .
De nos jours, la plupart des grands sites Web utilisent la séparation maître-esclave de la base de données et la séparation lecture-écriture, qui servent non seulement de sauvegarde, mais réduisent également la pression de lecture et d'écriture sur la base de données. J'en ai toujours entendu parler. , mais je n'en ai jamais entendu parler. Je ne l'ai jamais pratiqué moi-même. J'ai le temps de le pratiquer aujourd'hui et d'enregistrer le processus.
Environnement expérimental
J'ai préparé deux serveurs, l'un est un ordinateur local et l'autre est un vps distant. Il y a des bases de données installées sur les deux machines.
Je ne présenterai pas l'installation de MySQL. Ce qu'il faut noter ici est : il est préférable d'avoir la même version de MySQL installée. Si elle est incohérente, il peut y avoir des problèmes lorsque la version inférieure lit la version supérieure. . Il est préférable de le garder cohérent.
Bibliothèque principale master
45.78.57.4 centos 7 Linux système, mysql version 5.1.73
Esclave de la bibliothèque
Système macOs natif 127.0.0.1, mysql version 5.1.73
Configuration
Créer un utilisateur
Créez un utilisateur dans la bibliothèque principale pour lire le journal d'exécution de la bibliothèque principale à partir de la bibliothèque.
doit être exécuté dans la ligne de commande mysql. Vous devez d'abord vous connecter à la ligne de commande
Le code est le suivant :
GRANT REPLICATION SLAVE ON *.* TO 'test'@'45.78.57.4' IDENTIFIED BY 'test';
Modifier mon.cnf
Le système Linux est dans /etc/my.cnf, le système Mac est dans le répertoire où MySQL est installé, et il en va de même pour Windows.server-id = 1 //数据库ID号 log-bin=master-bin //启用二进制日志 log-bin-index=master-bin.index //二进制日志名称Attention à ne pas le mettre à la fin du fichier, mais mettez-le devant, c'est-à-dire après [mysqld], mettez-le ici Mon contenu my.cnf
[mysqld] server-id=1 log-bin=master-bin log-bin-index=master-bin.index datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 max_allowed_packet=100M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Afficher le statut
Après vous être connecté à la ligne de commande mysql, entrez show master status If. les informations suivantes apparaissent, cela signifie que la configuration de la base de données principale est terminéemysql> show master status; +-------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+------------------+ | master-bin.000001 | 672675 | | | +-------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)Enregistrez le contenu du fichier et de la position, qui sera utilisé lors de la configuration depuis la bibliothèque.
Configuration de la bibliothèque esclave
Recherchez le fichier my.cnf sur l'ordinateur local (bibliothèque esclave), puis ajoutez le contenu suivant La signification de cette configuration et le. la configuration de la bibliothèque principale est la mêmeserver-id=2 relay-log=slave-relay-bin relay-log-index=slave-relay-bin.indexAssurez-vous qu'elle est dans la même position que la bibliothèque principale, je n'ai pas pu la connecter car la position était placée à la fin.
Association de la base de données maître-esclave
La dernière étape est très importante Connectez-vous à la ligne de commande MySQL de la base de données esclave et exécutez le code suivant, qui est. principalement pour associer certaines informations de la base de données principale.change master to master_host='45.78.57.4', #Master 服务器Ip master_port=3306, master_user='test', master_password='test', master_log_file='master-bin.000001', #Master日志文件名 master_log_pos=672675; #Master日志同步开始位置Faites attention à ce que l'exécution réussisse. Si l'exécution échoue, vérifiez attentivement le code pour voir où se trouvent les erreurs.
//需要再mysql命令行执行 start slave; show slave status\G; //查看slave连接状态Informations sur le statut
Slave_IO_State: Waiting for master to send event Master_Host: 45.78.57.4 Master_User: test Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master-bin.000001 Read_Master_Log_Pos: 672913 Relay_Log_File: slave-relay-bin.000044 Relay_Log_Pos: 504 Relay_Master_Log_File: master-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes
Attention !
Ces deux statuts doivent être Oui pour être considérés comme réussis. Sinon, vérifiez l'erreur de configuration à l'étape ci-dessus.Slave_IO_Running: Yes Slave_SQL_Running: Yes
Test
Maintenant, vous ajoutez une donnée sur la base de données principale pour voir s'il y a les mêmes données sur la base de données esclave. Si c'est le cas, la. la configuration est normale. La fonction fonctionne normalement. Le principe principal de la séparation maître-esclave est d'activer la fonction de journal d'exécution de la bibliothèque principale, puis de lire les informations de journal de la bibliothèque principale à partir de la bibliothèque esclave, puis d'exécuter les instructions SQL exécutées par la bibliothèque principale. Bibliothèque sur la bibliothèque esclave. Jusqu'à ce que le maître-esclave soit séparé, les données maître-esclave restent intactes et ont pour fonction de sauvegarder les données.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!