通过BINLOG日志查找指定日期的SQL语句_MySQL
bitsCN.com
通过BINLOG日志查找指定日期的SQL语句
在95数据库服务器查找posts.post_thread的postid=1652971,在 2013-02-24 日执行的对数据有修改的SQL语句
www.bitsCN.com
# grep datadir /etc/mysql/my.cnf
datadir = /ssd/mysql
# cd /ssd/mysql
# mysql -A -e "show master status " | awk 'NR==2{print $1}' | awk -F. '{print $1}'
mysqld-bin 这里的内容为mysqlbinlog日志的前缀,因为如果是从数据库,还会有replylog.
找Binlog日志,取前一天的最后一个日志,以及24号创建的所有的日志
# ls –l
…
-rw-rw---- 1 mysql mysql 1075302338 Feb 22 04:00 mysqld-bin.000035
-rw-rw---- 1 mysql mysql 1092104643 Feb 22 14:10 mysqld-bin.000036
-rw-rw---- 1 mysql mysql 1073742083 Feb 23 00:06 mysqld-bin.000037
-rw-rw---- 1 mysql mysql 1073742129 Feb 23 05:26 mysqld-bin.000038
-rw-rw---- 1 mysql mysql 1073742102 Feb 23 15:30 mysqld-bin.000039
-rw-rw---- 1 mysql mysql 1073742095 Feb 24 01:36 mysqld-bin.000040
-rw-rw---- 1 mysql mysql 1076478877 Feb 24 09:00 mysqld-bin.000041
-rw-rw---- 1 mysql mysql 1087015180 Feb 24 15:00 mysqld-bin.000042
-rw-rw---- 1 mysql mysql 1073742090 Feb 25 01:31 mysqld-bin.000043
-rw-rw---- 1 mysql mysql 1073742037 Feb 25 08:47 mysqld-bin.000044
-rw-rw---- 1 mysql mysql 1073741919 Feb 25 15:45 mysqld-bin.000045
-rw-rw---- 1 mysql mysql 1073742218 Feb 26 03:36 mysqld-bin.000046
-rw-rw---- 1 mysql mysql 689342483 Feb 26 09:45 mysqld-bin.000047
…
这个时候我们需要分析的binlog日志为mysqld-bin.0000{39,4[0-2]}
# ls mysqld-bin.0000{39,4[0-2]}
mysqld-bin.000039 mysqld-bin.000040 mysqld-bin.000041 mysqld-bin.000042
# cat /root/findsql.sh
#!/bin/bash
BINLOGDIR=`cat /etc/mysql/my.cnf | grep datadir | awk '{print $3}'`
MYSQL="/usr/bin/mysql -A -e "
DATABASE="posts"
cd "${BINLOGDIR}"
BINLOGS=`ls mysqld-bin.0000{39,4[0-2]}`
for i in ${BINLOGS}
do
${MYSQL} "show binlog events in '${i}'" | grep "Query">>"${BINLOGDIR}/${i}.sql"
done
# chmod 755 /root/findsql.sh
先把binlog日志导出来,别做任何修改。至少这样的语句我们就认识了,然后再来搜索我们需要的语句。 www.bitsCN.com
# /root/findsql.sh
# ls mysqld-bin.0000{39,4[0-2]}.sql
mysqld-bin.000039.sql mysqld-bin.000041.sql
mysqld-bin.000040.sql mysqld-bin.000042.sql
在这些SQL中对数据进行筛选,这里的筛选需要看你自己的能力了,
会awk sed grep这三个就够了,awk建议必会。grep平时用的也特别多,应该不难。
# cat /root/parsesql.sh
#!/bin/bash
for i in `ls mysqld-bin.0000{39,4[0-2]}.sql`
do
awk -F 'use `posts`; ' '{print $2}' $i | grep -v 'chapterclick=chapterclick' | grep -v 'novelscore=novelscore' | grep 1652971 >> 1652971.sql
echo $i
done
# chmod 755 /root/parsesql.sh
# /root/parsesql.sh
1652971.sql这个里面的内容就是我们最后的成果
bitsCN.com

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le langage Go est un langage de programmation efficace, concis et facile à apprendre. Il est privilégié par les développeurs en raison de ses avantages en programmation simultanée et en programmation réseau. Dans le développement réel, les opérations de base de données font partie intégrante. Cet article explique comment utiliser le langage Go pour implémenter les opérations d'ajout, de suppression, de modification et de requête de base de données. Dans le langage Go, nous utilisons généralement des bibliothèques tierces pour faire fonctionner les bases de données, telles que les packages SQL couramment utilisés, gorm, etc. Ici, nous prenons le package SQL comme exemple pour présenter comment implémenter les opérations d'ajout, de suppression, de modification et de requête de la base de données. Supposons que nous utilisons une base de données MySQL.

Les dernières versions d'Apple des systèmes iOS18, iPadOS18 et macOS Sequoia ont ajouté une fonctionnalité importante à l'application Photos, conçue pour aider les utilisateurs à récupérer facilement des photos et des vidéos perdues ou endommagées pour diverses raisons. La nouvelle fonctionnalité introduit un album appelé "Récupéré" dans la section Outils de l'application Photos qui apparaîtra automatiquement lorsqu'un utilisateur a des photos ou des vidéos sur son appareil qui ne font pas partie de sa photothèque. L'émergence de l'album « Récupéré » offre une solution aux photos et vidéos perdues en raison d'une corruption de la base de données, d'une application d'appareil photo qui n'enregistre pas correctement dans la photothèque ou d'une application tierce gérant la photothèque. Les utilisateurs n'ont besoin que de quelques étapes simples

Le mappage polymorphe Hibernate peut mapper les classes héritées à la base de données et fournit les types de mappage suivants : join-subclass : crée une table séparée pour la sous-classe, incluant toutes les colonnes de la classe parent. table par classe : créez une table distincte pour les sous-classes, contenant uniquement des colonnes spécifiques aux sous-classes. union-subclass : similaire à join-subclass, mais la table de classe parent réunit toutes les colonnes de la sous-classe.

Comment installer l’extension PHPFFmpeg sur le serveur ? L'installation de l'extension PHPFFmpeg sur le serveur peut nous aider à traiter les fichiers audio et vidéo dans les projets PHP et à implémenter des fonctions telles que l'encodage, le décodage, l'édition et le traitement des fichiers audio et vidéo. Cet article explique comment installer l'extension PHPFFmpeg sur le serveur, ainsi que des exemples de code spécifiques. Tout d’abord, nous devons nous assurer que PHP et FFmpeg sont installés sur le serveur. Si FFmpeg n'est pas installé, vous pouvez suivre les étapes ci-dessous pour installer FFmpe

HTML ne peut pas lire directement la base de données, mais cela peut être réalisé via JavaScript et AJAX. Les étapes comprennent l'établissement d'une connexion à la base de données, l'envoi d'une requête, le traitement de la réponse et la mise à jour de la page. Cet article fournit un exemple pratique d'utilisation de JavaScript, AJAX et PHP pour lire les données d'une base de données MySQL, montrant comment afficher dynamiquement les résultats d'une requête dans une page HTML. Cet exemple utilise XMLHttpRequest pour établir une connexion à la base de données, envoyer une requête et traiter la réponse, remplissant ainsi les données dans les éléments de la page et réalisant la fonction de lecture HTML de la base de données.

Comment utiliser MySQLi pour établir une connexion à une base de données en PHP : Inclure l'extension MySQLi (require_once) Créer une fonction de connexion (functionconnect_to_db) Appeler la fonction de connexion ($conn=connect_to_db()) Exécuter une requête ($result=$conn->query()) Fermer connexion ( $conn->close())

Pour gérer les erreurs de connexion à la base de données en PHP, vous pouvez utiliser les étapes suivantes : Utilisez mysqli_connect_errno() pour obtenir le code d'erreur. Utilisez mysqli_connect_error() pour obtenir le message d'erreur. En capturant et en enregistrant ces messages d'erreur, les problèmes de connexion à la base de données peuvent être facilement identifiés et résolus, garantissant ainsi le bon fonctionnement de votre application.

Selon des informations publiées sur ce site Web le 23 juillet, ASUS a lancé une variété de produits au niveau serveur et station de travail alimentés par des processeurs AMD EPYC série 4004. Note de ce site : AMD a lancé en mai la plate-forme AM5 et les processeurs de la série EPYC 4004 à architecture Zen4, offrant jusqu'à 16 spécifications de cache 3DV cœurs. Serveur ASUSProER100AB6 ASUSProER100AB6 est un produit de serveur rack 1U équipé d'un processeur EPYC Xiaolong série 4004, adapté aux besoins d'IDC et des petites et moyennes entreprises. La station de travail ASUSExpertCenterProET500AB6 ASUSExpertCenterProET500AB6 est une
