mysql 报错Could not retrieve transation read-only status server

来源:互联网 发布:知乎 数学公式 编辑:程序博客网 时间:2024/05/17 06:24

1、报错信息

### 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    at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:106)    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:365)    at com.sun.proxy.$Proxy12.selectOne(Unknown Source)    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)    at com.xinrui.code.dao.impl.UserDaoImpl.get(UserDaoImpl.java:37)    at com.xinrui.code.service.impl.UserServiceImpl.get(UserServiceImpl.java:33)    at com.xinrui.code.web.admin.UserController.getUser(UserController.java:55)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1629)    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)    at org.eclipse.jetty.server.Server.handle(Server.java:564)    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)    at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)    at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)    at java.lang.Thread.run(Thread.java:745)

2、报错原因

(1) java代码在开始事务后,先做了一个查询,再insert,此时会报: java.sql.SQLException: could not retrieve transation read-only status server
(2)查询的时候不会报错,但是执行update和insert的时候会报这个错,经发现是驱动包mysql-connector-java-5.1.9.jar和MySQL版本冲突。

3、解决方案

(1)引入mysql-connector-Java-5.1.32.jar 包替换原来的驱动包
(2)maven工程,直接在pom.xml中加入依赖

<dependency>    <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>    <version>5.1.32</version></dependency>
阅读全文
1 0
原创粉丝点击