首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

从MYSQL的binlog恢复指定的SQL语句,解决中文乱码有关问题

2012-11-21 
从MYSQL的binlog恢复指定的SQL语句,解决中文乱码问题。系统错误导致3天中的部分数据被错误覆盖,只能从MYSQL

从MYSQL的binlog恢复指定的SQL语句,解决中文乱码问题。
系统错误导致3天中的部分数据被错误覆盖,只能从MYSQL的binlog中恢复数据。
1、使用mysqlbinlog工具将binlog文件转换为sql文件:
    mysqlbinlog sd-bin.000040 > a.sql
    mysqlbinlog sd-bin.000041 >> a.sql
2、遍历a.sql的所有语句:

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class SQLparser {/** * @param args * @throws IOException */public static void main(String[] args) throws IOException {if (args == null || args.length != 1) {System.out.println("error on args");return;}File file = new File(args[0]);if (!file.isFile()) {System.out.println("error arg[0] not a file");return;}System.out.println(file.getName() + "BEGIN!");BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("d:\\parsed.sql")), "utf-8"));BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "utf-8"/* 指定源文件的字符集编码 */));String line = br.readLine();while (line != null) {if (line.contains(", c_dzd.voucher='"/* 匹配需要留下的SQL片段 */)) {System.out.println(line);bw.append(line + ";\n"/* 追加分号和换行 */);}line = br.readLine();}br.close();bw.close();System.out.println(file.getName() + "OK!");}}

热点排行