null, message from server: "Host 'DESKTOP-GT3N5PV' is not allowed to connect to this MySQL server"

使用Hibernate连接Mysql数据库时遇到下面的错误:

Exception in thread "main" org.hibernate.exception.GenericJDBCException: Cannot open connection
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:129)
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1290)
    at com.j2ee.hibernate.UserClient.addUser(UserClient.java:18)
    at com.j2ee.hibernate.UserClient.main(UserClient.java:56)
Caused by: java.sql.SQLException: null,  message from server: "Host 'DESKTOP-GT3N5PV' is not allowed to connect to this MySQL server"
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1096)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:187)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
    ... 6 more

查了一下资料发现原因是数据库不予许远程访问。

目前自己尝试找到了三种解决方法:

(一):用本机(localhost)访问,如配置文件修改如图:

IP地址修改成localhost

重新运行程序即可

(二)修改Mysql的连接设置,将root对应的localhost或者127.0.0.1修改为%,重新运行程序即可:

如图所示:

localhost/127.0.0.1修改为%

(三)手动配置,参照博客:https://blog.csdn.net/langzi7758521/article/details/51729735

希望能帮到各位小伙伴哦~~~~

猜你喜欢

转载自blog.csdn.net/Xiao_Bai_Ke/article/details/83411271