环境
tomcat 6.x
jdk 1.6
mysql5.5
异常
执行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。
相关推荐
主要介绍了mysql中binlog_format模式与配置的相关内容,详细介绍了binlog的三种格式与SBR、 RBR 两种模式各自的优缺点,需要的朋友可以参考。
主要介绍了MySQL:Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEM,需要的朋友可以参考下
是否记录 update 语句到binlog依赖于 binlog_format 的设置。具体情况 实践出真知。 二 测试 2.1 binlog_format 为 ROW 模式 2.2 binlog_format 为 STATEMENT 模式 解析binlog内容,完整的记录了update语句。 ...
介绍了mysql binlog相关查看命令,以及binlog_format在不同模式的解析文档
1.在没有特殊说明的情况下,默认binlog_format=STATEMENT,由于binlog_format=ROW/MIXED模式下,RAND()函数以行格
py-mysql-es mysql binlog同步到elasticsearch 安装 pip install yaml ...binlog-format = row MySQL用户权限 CREATE USER es IDENTIFIED BY 'es'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT
MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型。 ...fix Format_description_event:
MySQL数据库实现双活是指在多个数据中心中安装有相同的MySQL服务...例如,配置binlog_format为ROW、设置read_only参数为0,利用GTID来控制并发更新,以及使用Delay-aware Load Balancer等技术,保证数据能够及时同步。
binlog是二进制日志文件,用于记录mysql的数据变更,数据在恢复的时候binlog日志能起到很大的作用。mysql的主从复制就是利用的binlog原理 1、登录mysql之后使用下面的命令查看是否开启binlog show variables like ...
mysql-binlog-emitter 一个nodejs mysql / mariadb从属复制事件发射器。 这是mysql的二进制日志协议的高级实现,如果您仅对数据库中发生的更改感...bin_index = /var/log/mysql/mysql-bin.indexbinlog-format = row #
binlog-format = ROW log-bin-index = /home/mysql/logindex binlog_cache_size=32m max_binlog_cache_size=512m max_binlog_size=512m 重启mysql即可。其中路径 /home/mysql的用户和组要改成mysql。 2、增量备份 ...
binlog_format为ROW 参数 root@localhost : (none) 04:53:15> show variables like 'binlog_row_image'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | binlog_row_...
下面先来分享一下,关闭mysql日志的方法 LNMP一键包安装的Mysql默认开启Mysql日志,如果网站对数据库读写...binlog_format=mixedbash 注释这两行,如下: #log-bin=mysql-bin #binlog_format=mixedbash 在这两个字段之前
LNMP一键包安装的Mysql默认开启Mysql日志,如果网站对数据库读写较为频繁的话...binlog_format=mixedbash 注释这两行,如下: 代码如下: #log-bin=mysql-bin #binlog_format=mixedbash 在这两个字段之前添加“#”号
原理是修改binlog的内容,拿回原库重放,需要确保binlog_format=row和binlog_row_imsge=Full 具体恢复时 如果是insert,将binlog event类型是write_rows event改为delete_rows event。 如果是delete则相反。
binlog_format=(row、statement、mixed) statement:SBR,语句模式记录日志,做什么命令,记录什么命令. 可读性较强,对于范围操作日志量少,但是可能会出现记录不准确的情况:insert into xx values (1,'sa
指定远程数据库地址,起止时间范围或binlog范围,可指定库/表和操作类型,GTID/线程号等解析服务API:提供HTTP协议方式的解析接口,支持解析和打包下载限制和要求MySQL必须开启binlogbinlog_format = rowbinlog_row_...
在 [mysqld] 中新增以下内容: 代码如下:log-bin=mysql-binlog-bin-index=mysql-bin.indexserver-id = 1sync_binlog=1binlog_format=mixed然后指定要做同步的数据库,并忽略掉不需要做同步的数据库 代码如下:binlog-...
这里先说明下因为Delete 操作的恢复方法:主要还是通过binlog来进行恢复,前提是binlog_format必须是Row格式,否则只能通过备份来恢复数据了。 方法: 条件:开启Binlog,Format为Row。 步骤: 1.通过MySQL自带工具...