Mysql开二进制日志的风险

来源:互联网 发布:迪杰斯特拉算法流程图 编辑:程序博客网 时间:2024/06/05 05:36

有个项目外包出去了,最近上去检查Mysql数据库发现只有备份,既没有做同步也没有打开二进制日志。

为了便于崩溃后恢复,和一些安全问题,想打开二进制日志。 由于是外包的项目所以本地没有测试环境。

觉得打开二进制日志没什么风险,也没有做测试。通知业务部门,晚上修改重启,让一个夜班的同事测试,

测试反馈一切正常,收工回家。

第二天业务部门来问有没有修改程序,说有个功能不正常了。我们没有升级程序,也无法看到应用错误日志,就让他找外包厂商了。

mysql> select version();
+----------------------+
| version()            |
+----------------------+
| 5.1.53-community-log |
+----------------------+

最后找到问题的原因:
Binary logging not possible. Message: Transaction level ‘READ-COMMITTED’ in InnoDB is not safe for binlog mode ‘STATEMENT’。

修改binlog_format为mixed后问题解决。

mysql> show variables like 'binlog_format' ;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | MIXED |
+---------------+-------+

结论:许多貌似简单,安全的操作,往往是暗藏风险的。生产环境的改动一定要小心。