mysql一条binlog使用shell脚本打印出原始sql
程序员文章站
2022-07-13 17:15:15
...
row格式的binlog,打印出原始sql语句,
one.sql是一个sql的binlog日志
# 一条binlog使用 --base64-output=decode-rows 解析出的sql,加上字段名,需要表面为 数据库.表名,或者自己加上表名
bin_sql_one=$(grep '### .*' one.sql| sed 's/### //')
# echo "bin_sql_one:$bin_sql_one"
table_name=$(echo "$bin_sql_one" |grep UPDATE |sed 's/UPDATE //')
# echo "table_name:$table_name"
columns=$(mysql --defaults-file=/u01/my3306/my.cnf -uroot -p123Mysql] -e "select * from $table_name limit 1\G" 2>/dev/null | tail -n +2 | cut -d':' -f1)
# echo "columns:$columns"
count=0
for column in $columns
do
(( count++ ))
bin_sql_one=$(echo "$bin_sql_one" | sed -e "s/@$count/$column/g")
done
echo "$bin_sql_one"
上一篇: 取消执行的语句被记录 slowlog
下一篇: 将博客搬至CSDN