Maison  >  Article  >  développement back-end  >  Expliquer comment utiliser le binlog mysql

Expliquer comment utiliser le binlog mysql

jacklove
jackloveoriginal
2018-06-08 15:39:483011parcourir

Cet article présente l'utilisation de mysql binlog, y compris l'ouverture, la fermeture, l'affichage de l'état, l'actualisation, l'effacement, l'affichage des instructions SQL exécutées et d'autres opérations. Les paramètres de la 5.7 et des versions antérieures sont également expliqués pour faciliter l'apprentissage par tous.

introduction à mysql binlog

binlog est un journal binaire, un fichier journal binaire qui enregistre toutes les opérations mysql dml.

Selon le fichier binlog mysql, nous pouvons vérifier quelles instructions SQL ont été exécutées, effectuer une récupération de données, une réplication synchrone maître-esclave et d'autres opérations.

Le fichier binlog joue un rôle important dans le traitement et la récupération d'une base de données.

1. Ouverture et fermeture du binlog Mysql

Afficher la configuration du binlog mysql

show global variables like '%log_bin%';
+---------------------------------+-------+| Variable_name                   | Value |
+---------------------------------+-------+| log_bin                         | OFF   |
| log_bin_basename                |       |
| log_bin_index                   |       |
| log_bin_trust_function_creators | OFF   |
| log_bin_use_v1_row_events       | OFF   |+---------------------------------+-------+

le binlog est actuellement fermé.

Ouvrez binlog

Ouvrez my.cnf ou my.ini et ajoutez ce qui suit déclaration, Redémarrer mysql

log_bin=ONlog_bin_basename=/usr/local/var/mysql/mysql-binlog_bin_index=/usr/local/var/mysql/mysql-bin.index

log_bin
ON signifie ouvrir le journal binlog et le changer en OFF.

log_bin_basename
représente le nom de fichier de base du journal binlog, et un identifiant sera ajouté pour distinguer chaque fichier.

log_bin_index
Spécifie le fichier d'index du fichier binlog Ce fichier gère le répertoire de tous les fichiers binlog.


S'il s'agit de MySQL 5.7 ou inférieur, ce paramètre est suffisant. S'il s'agit de 5.7 ou supérieur, vous devez le définir comme suit

log_bin=mysql-binserver_id=123456

log_bin représente le nom du fichier binlog personnalisé.

server_id signifie spécifier aléatoirement une chaîne qui n'a pas le même nom que les autres machines du cluster. Elle doit être définie lors de la configuration de la réplication MySQL. Elle ne peut pas être répétée. avec l'esclaveId du canal.
Après le redémarrage, vérifiez à nouveau la configuration du binlog mysql

show global variables like '%log_bin%';
+---------------------------------+--------------------------------------+| Variable_name                   | Value                                |
+---------------------------------+--------------------------------------+| log_bin                         | ON                                   |
| log_bin_basename                | /usr/local/var/mysql/mysql-bin       |
| log_bin_index                   | /usr/local/var/mysql/mysql-bin.index |
| log_bin_trust_function_creators | OFF                                  |
| log_bin_use_v1_row_events       | OFF                                  |+---------------------------------+--------------------------------------+
Vous pouvez voir que le binlog est activé.



2. Afficher la liste des fichiers journaux binlog

show master logs;
+------------------+-----------+| Log_name         | File_size |
+------------------+-----------+| mysql-bin.000001 |       177 |
| mysql-bin.000002 |       177 |
| mysql-bin.000003 |       177 |
| mysql-bin.000004 |       177 |
| mysql-bin.000005 |       177 |
| mysql-bin.000006 |       177 |
| mysql-bin.000007 |       201 |
| mysql-bin.000008 |       201 |
| mysql-bin.000009 |       201 || mysql-bin.000010 |       154 |
+------------------+-----------+
3. Afficher le journal binlog en cours d'écriture

show master status;
+------------------+----------+--------------+------------------+-------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000010 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
4. fichier journal binlog

flush logs;
5. Effacez le fichier journal

reset master;
6. Affichez le contenu du fichier journal binglog

Affichez le fichier journal binlog pour voir. quelles instructions SQL ont été exécutées, nous pouvons utiliser l'outil

mysqlbinlog pour le traitement.

Tout d'abord, selon

log_bin_basename, recherchez le répertoire dans lequel le fichier binlog est stocké, puis utilisez l'outil mysqlbinlog pour afficher le fichier binlog correspondant.

Par exemple :

mysqlbinlog -v mysql-bin.000001 > mysql-bin-1.log
Vérifiez ensuite mysql-bin-1.log pour afficher les instructions SQL exécutées.

BINLOG '
Xq1HWhNA4gEAPAAAAGQBAAAAAPEEAAAAAAEACXRlc3RfdXNlcgAGY3NfdGFnAAUDDwEDAwL9AgBa
WZlG
Xq1HWh5A4gEANwAAAJsBAAAAAPEEAAAAAAEAAgAF/+ACAAAABABjc2RuAf2LG1r9ixtaIS88ZA==
'/*!*/;### INSERT INTO `test_user`.`cs_tag`### SET###   @1=2###   @2='csdn'###   @3=1###   @4=1511754749###   @5=1511754749# at 411

Vous devez faire attention à quelques points lors de l'utilisation de mysqlbinlog

1 Ne vérifiez pas le fichier binlog en cours d'écriture. Vous pouvez copier le fichier. vers un autre répertoire. Vérifiez d'abord à nouveau.

2. N'ajoutez pas de paramètre de force pour forcer l'accès.

3. Si le format binlog est en mode ligne, veuillez ajouter le paramètre -vv.

Cet article explique comment utiliser mysql binlog Pour plus de connaissances connexes, veuillez faire attention au site Web chinois de php.

Recommandations associées :

Expliquez le contenu pertinent de PHP à l'aide de l'algorithme de compartiment à jetons pour implémenter un contrôle de flux basé sur Redis

Comment passer php crée une classe de code QR avec logo

Explication détaillée des méthodes associées de MySQL pour reconstruire les partitions de table et conserver 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!

Déclaration:
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