登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. Platforms
  3. LINUX
  4. Mysql
  5. 正文

解决Mysql java.sql.SQLException: Could not retrieve transation read-only status server问题-日常笔记

2017-11-01

有个小服务用Mysql做存储,有个表对insert做了如下触发器:

CREATE TRIGGER `t_afterinsert_on_se_buf` AFTER INSERT ON `se_buf` FOR EACH ROW BEGIN
     insert se(`date`,`shift_id`,`device_id`,`tingji_secs`,`kaiji_secs`,`lixian_secs`,`kailu_secs`,`kailuzuoguan_secs`,`storetime`) 
	 value(new.`date`,
	 (select `id` from `shift` where `shift_no` = new.shift_code),
	 (select `id` from `device` where `code` = new.device_code),
	 new.tingji_secs,new.kaiji_secs,new.lixian_secs,new.kailu_secs,new.kailuzuoguan_secs,new.storetime);
END;

服务运行数日后,查看日志后发现有以下异常:

java.sql.SQLException: Could not retrieve transation read-only status server

解决过程如下:

一、事务性方面

数据库采用了Mysql 5.7 ,存储引擎为innodb,事务隔离等级为:

修改my.cnf,增加:

transaction_isolation = READ-COMMITTED

 

切换为READ-COMMITTED等级。

问题分析:

READ COMMITTED别的事物在未提交事务前,别的事务时不能访问这个事务。
REPEATABLE-READ事务隔离等级是在读事务提交前,别的事务可以更改数据,但不可以插入数据

 

-

-

参考文献


http://www.cnblogs.com/jeffen/p/6005410.html

标签: 暂无
最后更新:2017-11-01

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号