首页 > 解决方案 > 获取JDBC连接失败;嵌套异常是 java.sql.SQLException: null

问题描述

从本地计算机中的数据库服务器获得以下响应,

{
    "timestamp": "2020-03-22T13:18:30.383+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: null,  message from server: \"Host '192.168.64.1' is not allowed to connect to this MariaDB server\"",
    "path": "/users"
}

我的春靴application.properties

# MySQL
spring.datasource.url=jdbc:mysql://192.168.64.2:3306/ctracker
spring.datasource.username=admin
spring.datasource.password=admin

logging.level.org.springframework=info
logging.level.org.springframework.jdbc=DEBUG

phpmyadmin 控制台:

在此处输入图像描述

我该如何解决这个问题?

Spring Boot 堆栈跟踪,

java.sql.SQLException: null,  message from server: "Host '192.168.64.1' is not allowed to connect to this MariaDB server"
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.19.jar:8.0.19]
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.19.jar:8.0.19]
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.19.jar:8.0.19]
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.19.jar:8.0.19]
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.19.jar:8.0.19]
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.19.jar:8.0.19]
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) ~[mysql-connector-java-8.0.19.jar:8.0.19]
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-3.4.2.jar:na]
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354) ~[HikariCP-3.4.2.jar:na]
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) ~[HikariCP-3.4.2.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473) [HikariCP-3.4.2.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554) [HikariCP-3.4.2.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) [HikariCP-3.4.2.jar:na]

标签: javamysqlspring-bootdatabase-connection

解决方案


我通过在 phpmyadmin 中添加新用户解决了这个问题,

  1. 登录到 phpMyADmin。
  2. 转到权限。
  3. 单击添加新用户。
  4. 在登录信息区域输入您想要的访问信息(用户名、主机、密码)
  5. 单击创建具有相同名称的数据库并授予所有权限的单选按钮。
  6. 单击“前往”。

推荐阅读