mysql Server 有四种类型的日志——Error Log、General Query Log、Binary Log 和 Slow Query Log。
第一个是错误日志,记录mysqld的一些错误。第二个是一般查询日志,记录mysqld正在做的事情,比如客户端的连接和断开、来自客户端每条Sql Statement记录信息;如果你想准确知道客户端到底传了什么给服务端,这个日志就非常管用了,不过它非常影响性能。第四个是慢查询日志,记录一些查询比较慢的SQL语句——这种日志非常常用,主要是给开发者调优用的。
剩下的第三种就是binlog了,包含了一些事件,这些事件描述了数据库的改动,如建表、数据改动等,也包括一些潜在改动,比如delete from ran where bing = luan
,然而一条数据都没被删掉的这种情况。除非使用Row-based logging,否则会包含所有改动数据的SQL Statement。
那么binlog就有了两个重要的用途——复制和恢复。比如主从表的复制,和备份恢复什么的。
常用的估计就两种:
1、binlog:记录MySQL变更前后的数据(包括insert、update、delete)
2、gennerallorg:记录myql数据库上执行的所有原始SQL语句:(select、insert、update、delete)
参考:
http://blog.51cto.com/linuxboys/1605899
https://segmentfault.com/a/1190000003072963(以上内容部分转自此篇文章)