windows下mysql数据库恢复详细流程(以 win10系统,mysql5.5.36版本进行测试)
数据库应进行每晚12点或自定义时间间隔自动进行主从备份,备份时应锁定数据库
对于时间间隔内出错的数据可以利用binlog日志文件进行恢复,binlog日志文件默认不会进行自动删除

开启mysql数据库的binlog日志记录功能

1、登录mysql数据库,命令行连接数据库格式
 mysql -u -p -h -P
 注:u为用户名,p为密码,h为ip地址 P为端口号
 例如:mysql -uroot -p123 -h 192.168.99.99 -P 33062、登录到数据库中查看日志是否打开,log_bin为OFF说明未开启。
 show variables like “log_bin”;3、修改mysql配置文件来开启binlog
 安装路径下找到配置文件my.ini ,记事本打开,在[mysqld]子节点下增加行
 log-bin=mysql-bin
 注:linux系统下配置文件为my.cnf
 查看mysql安装路径
 select @@basedir;
 查看mysql数据存储路径
 show global variables like “%datadir%”;
 或者select @@datadir;4、重启数据库服务,退出(ctrl+c)命令行重新登录后,再次验证binlog功能是否开启
5、查看已生成的binlog日志文件
 show master logs;6、指定二进制日志文件的存储位置
 my.ini文件->[mysqld]子节点下->增加行
 log-bin=“指定路径/指定文件名.log”
 例如:log-bin=“d:/as/binlog.log”7、日志文件生成规则
 每当重启数据库服务或执行 “ flush logs;”命令均会生成一个新的日志文件
 8、设置binlog自动清理时间
 my.ini文件->[mysqld]子节点下->增加行
 expire_logs_days = 天数
 例如:expire_logs_days = 7 //每7天自动清理一次9、binlog每个日志文件大小
 my.ini文件->[mysqld]子节点下->增加行
 max_binlog_size = 文件大小
 例如:max_binlog_size = 100m //最大文件大小为100M10、查询当前正在使用哪个日志文件
 show master status\G11、清空所有binlog日志
 reset master;利用日志文件恢复数据,以下步骤均在退出mysql登陆后操作
 
 1、日志文件生成sql文件
 mysqlbinlog -d 数据库名 日志文件名 > 生成文件名.sql
 例如:mysqlbinlog -d 数据库名 mysql-bin.000001 mysql-bin.000002 > 生成文件名.sql
 注:该命令在文件路径下执行
 多个日志文件之间以空格分隔
 参数说明:
 -d,选择数据库,后跟数据库名称,如-d test,意思就是从日志文件中提取出所有test数据库的操作;
 –start-datetime,开始时间,后跟时间字符串,如–start-datetime=”2015-12-25 11:25:56″,意思就是从日志文件中提取这一时间节点以后的数据库操作;
 –stop-datetime,结束时间,后跟时间字符串,如–stop-datetime=”2016-12-25 11:25:56″,意思就是从日志文件中提取这一时间节点之前的数据库操作;
 –start-position,开始位置,后跟一个整数,如–start-position=100,意思就是从日志文件中第1个位置等于N参量时的事件开始读取数据库操作;
 –stop-position,结束位置,后跟一个整数,如–stop-position=1000,意思就是从日志文件中第1个位置等于和大于N参量时的事件起停止读取数据库操作;2、导入sql文件
 source sql文件路径
 注:sql文件路径支持sql文件直接拖入命令行窗口获得
 windows下的文件路径“/”应全部修改为“\”
 拖拽后路径的“”应删除掉3、删除原有库模拟数据删除,进行校验,至此日志恢复操作完成
4、查看某日志文件的内容
 cd binlog文件上级完整文件路径,注意修改路径标识符“/”为“\”
 进入路径后 ,输入日志文件名
 注:cd 命令后不要带分号
 cd命令执行后路径未改变->执行后再次输入“ 盘符: ”
 5、查看mysqlbinlog帮助
 mysqlbinlog -help