zoukankan      html  css  js  c++  java
  • impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage isolation level is READ COMMITTED or READ UNCOMMITTED

    执行jdbc查询时抛出异常:

    Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.

    原因及解决方案

    This is required by MySQL:

    Statement based binlogging does not work in isolation level
    READ UNCOMMITTED and READ COMMITTED since the necessary
    locks cannot be taken.

    根据tomcat抛异常,提示是事务级别在read committed和read uncommitted的时候binlog必须设置为row格式。

    这个是java设置的一个局限性,java默认的事务级别是read committed,而mysql默认设置的binlog_format=statement。

    将binlog_format设置为mixed

    set global binlog_format=mixed;

    过段时间,异常仍在!

    设置成row

    set global binlog_format=row;

    问题解决!

    或:

    mysql> SET SESSION binlog_format = 'ROW';

    mysql> SET GLOBAL binlog_format = 'ROW';

    注意: 若手动修改linux下面/etc/my.cnf :  binlog_format = row  ,  需要重启mysql。

  • 相关阅读:
    CentOS7 命令笔记
    MarkDown学习
    系统管理员资源大全
    解决回车键导致的页面无意义刷新
    Tomcat远程调试
    gson 自定义对象转换格式
    maven私服搭建
    大明最不该被遗忘的英烈——李定国
    HashMap实现原理分析(转)
    自定义评分器Similarity,提高搜索体验(转)
  • 原文地址:https://www.cnblogs.com/wang-yaz/p/12357875.html
Copyright © 2011-2022 走看看