Could not retrieve transation read-only status server「建议收藏」

背景最近在部署一套完整的项目,部署过程中遇到很多的问题,在来总结一些如标题的这个错误!环境说明: 使用分布式数据库,使用的是mysql!### Cause: java.sql.SQLException: Could not retrieve transation read-only status server; SQL []; Could not retrieve tran…

大家好,又见面了,我是全栈君。

背景

最近在部署一套完整的项目,部署过程中遇到很多的问题,在来总结一些如标题的这个错误!

  • 环境说明:
    使用分布式数据库,使用的是mysql!
### Cause: java.sql.SQLException: Could not retrieve transation read-only status server
; SQL []; Could not retrieve transation read-only status server; nested exception is java.sql.SQLException: Could not retrieve transation read-only status server, dubbo version: 2.5.3, current host: 127.0.0.1
org.springframework.dao.TransientDataAccessResourceException: 
### Error querying database.  Cause: java.sql.SQLException: Could not retrieve transation read-only status server

问题排查

因为项目的代码没有改动,目前这一套代码已经在生产上运行了,目前出现错误的原因在之前生产上没有遇到。

1、报错了,网上查相关资料

通过在网上查找资料,
有两种说法:
1)、修改 数据库的隔离级别,将 REPEATABLE-READ修改为READ-COMMITED.
2)、数据库和应用中数据库驱动(mysql驱动版本不一致)

###2、查看数据库信息

mysql> SHOW VARIABLES LIKE '%iso%';
+-----------------------+-----------------+
| Variable_name         | Value           |
+-----------------------+-----------------+
| transaction_isolation | REPEATABLE-READ |
| tx_isolation          | REPEATABLE-READ |
+-----------------------+-----------------+
mysql> select version();
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    662239
Current database: shop

+-----------------------------------+
| VERSION()                         |
+-----------------------------------+
| 5.7.21-dbproxy-4.0-20180412155855 |
+-----------------------------------+

发现数据库配置的确是REPEATABLE-READ,因为我不能随便改动这个数据库,数据库隔离级别这个业务有紧密的关系,那么首先从版本是否匹配进行解决,问了相关同事:

:你好, 5.7.21-dbproxy-4.0-20180412155855这个 版本的对mysql驱动有要求,最低mysql驱动是支持多少 ?
:5.1.27~5.1.35

查看了一下目前项目的mysql驱动配置,发现是 5.1.24 ,版本低于要求的版本。

3、 升级mysql驱动

对mysql版本进行升级,升级为 5.1.30,重新部署,发现还是报错,于是又升级到 5.1.32,部署后,发现不报错了。问题解决了!

总结

解决一个问题的方法可能有多种,选择一个最合适的方法,比如上面的这个问题,可能解决的方法的有两个,一个是修改mysql的隔离级别,一个修改应用的mysql驱动版本,那个对业务的影响更小的,那肯定是修改mysql驱动版本


如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到,谢谢!

如果帅气(美丽)、睿智(聪颖),和我一样简单善良的你看到本篇博文中存在问题,请指出,我虚心接受你让我成长的批评,谢谢阅读!
祝你今天开心愉快!


欢迎访问我的csdn博客,我们一同成长!

不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

博客首页 : http://blog.csdn.net/u010648555

© 每天都在变得更好的阿飞

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121068.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LoadRunner11.00安装&使用教程[通俗易懂]

    LoadRunner11.00安装&使用教程[通俗易懂]本教程分为四部分内容:安装序言:由于LoadRunner12.02或者12.53版本是HP公司推出的自带免费50个虚拟用户进行压力测试的版本,目的为了工程师去学习与了解的该工具。为了增大压力(增加虚拟用户数)到达高并发的性能测试,采用LoadRunner11.00,增加对应的Lice…

    2025年11月11日
    4
  • UART和USART有区别

    UART和USART有区别UART  UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。  UART的功能计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据…

    2022年5月19日
    38
  • mkv格式文件不能播放和字幕问题_mkvplayer手机版

    mkv格式文件不能播放和字幕问题_mkvplayer手机版从byrbt上拖了黑衣人I、II来看,发现所有的播放器都不能正常显示mkv包中自带的字幕。理所当然怀疑是字幕编码的问题,但是查设置是对的(GB2312)。但此方法无效。从网络上找来字幕文件(srt)是可以正常显示的,所以编码设置应该没有问题。mkv其实是把音频、视频、字幕等封存成一个文件的形式。此处可以播放独立字幕,但是不能显示mkv内部的外挂字幕,应该是所含字幕本身的问题。于是在r…

    2025年7月18日
    5
  • c# listView1写入第一行第一列

    c# listView1写入第一行第一列listview的用法:1:首先申明一个行对象ListViewItemlist=newListViewItem(“a”);2:为行对象添加子项list.subitems.add(“b”);list.subitems.add(“c”);3:把行对象加到ListView中去,listview1.items.add(list);综上所述就在listview中添加了一行,如果你想添加多行,可

    2022年7月12日
    39
  • 词向量总结「建议收藏」

    词向量总结「建议收藏」词向量词向量是自然语言理解的重要工具,它的核心思想是把词映射到一个向量空间,并且这个向量空间很大程度上保留了原本的语义。词向量既可以作为对语料进行数据挖掘的基础,也可以作为更复杂的模型的输入,是现在nlp的主流工具。下面就总结一下nlp中经典的词向量方法。主要有:onehot、glove、cbow、skip-gram

    2022年5月6日
    37
  • 电容是根据什么分类_电容的分类与识别图片

    电容是根据什么分类_电容的分类与识别图片一、瓷介电容器(CC)1.结构用陶瓷材料作介质,在陶瓷表面涂覆一层金属(银)薄膜,再经高温烧结后作为电极而成。瓷介电容器又分1类电介质(NPO、CCG));2类电介质(X7R、2X1)和3类电介质(Y5V、2F4)瓷介电容器。2.特点1类瓷介电容器具有温度系数小、稳定性高、损耗低、耐压高等优点。最大容量不超过1000pF,常用的有CC1、CC2、CC18A、CC11、CCG等系…

    2022年8月22日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号