数据库连接出错
问题
Type 异常报告
消息 Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
描述 服务器遇到一个意外的情况,阻止它完成请求。
Exception
org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:452)
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:462)
com.kilig.dao.UserDaoImpl.findAll(UserDaoImpl.java:20)
com.kilig.service.UserServiceImpl.findAll(UserServiceImpl.java:16)
com.kilig.web.UserListServlet.doPost(UserListServlet.java:19)
com.kilig.web.UserListServlet.doGet(UserListServlet.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:939)
com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1376)
com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1372)
com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:109)
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:452)
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:462)
com.kilig.dao.UserDaoImpl.findAll(UserDaoImpl.java:20)
com.kilig.service.UserServiceImpl.findAll(UserServiceImpl.java:16)
com.kilig.web.UserListServlet.doPost(UserListServlet.java:19)
com.kilig.web.UserListServlet.doGet(UserListServlet.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看
解决
在命令行中连接一下数据库即可