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。

  • 相关阅读:
    文本分类的研究学习
    Python中的TfidfVectorizer参数解析
    Newsgroups数据集介绍
    鸢尾花数据读取的总结
    Knapsack Problems
    3.1.6 Stamps
    3.1.5 Contact
    3.1.4 Shaping Regions
    3.1.3 Humble Numbers
    3.1.2 Score Inflation
  • 原文地址:https://www.cnblogs.com/wang-yaz/p/12357875.html
Copyright © 2011-2022 走看看