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。

  • 相关阅读:
    websocket简单理解
    对两个列表合成一个列表后进行排序
    爬取今日头条财经版块新闻
    Python的hasattr(),getattr(),setattr()
    Django基础
    pymysql模块的使用
    我一定要学好英语
    Django项目的创建
    MySQL数据库(安装+增删改查)
    jQuery
  • 原文地址:https://www.cnblogs.com/wang-yaz/p/12357875.html
Copyright © 2011-2022 走看看