Hibernate可以连接到mysql,但SpringJPA不能
我正在开发一个已经可以与hibernate一起使用的基本应用程序,并希望添加SpringJPA功能以使其更加简单 当我使用hibernate进行测试时,我能够毫无问题地连接到mysql数据库。但是当我从spring boot测试应用程序时,数据库访问失败。我在hibernate.cfg.xml和application.properties中提供了相同的凭据。但不确定spring访问失败的原因 我尝试将特权授予该用户。但仍然不起作用Hibernate可以连接到mysql,但SpringJPA不能,mysql,spring,hibernate,spring-boot,Mysql,Spring,Hibernate,Spring Boot,我正在开发一个已经可以与hibernate一起使用的基本应用程序,并希望添加SpringJPA功能以使其更加简单 当我使用hibernate进行测试时,我能够毫无问题地连接到mysql数据库。但是当我从spring boot测试应用程序时,数据库访问失败。我在hibernate.cfg.xml和application.properties中提供了相同的凭据。但不确定spring访问失败的原因 我尝试将特权授予该用户。但仍然不起作用 GRANT ALL PRIVILEGES ON *.*
GRANT ALL PRIVILEGES ON *.* TO 'logesh'@'localhost' WITH GRANT OPTION;
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/devops</property>
<property name="hibernate.connection.username">logesh</property>
<property name="hibernate.connection.password">logesh</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hbm2ddl.auto">create</property>
<property name="hibernate.show_sql">true</property>
以下是我在spring boot中遇到的错误:
java.sql.SQLException: Access denied for user 'logesh'@'localhost' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.13.jar:8.0.13]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.13.jar:8.0.13]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.13.jar:8.0.13]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) ~[mysql-connector-java-8.0.13.jar:8.0.13]
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455) ~[mysql-connector-java-8.0.13.jar:8.0.13]
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) ~[mysql-connector-java-8.0.13.jar:8.0.13]
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207) ~[mysql-connector-java-8.0.13.jar:8.0.13]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136) ~[HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369) ~[HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198) ~[HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467) [HikariCP-3.2.0.jar:na]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:541) [HikariCP-3.2.0.jar:na]
我被困在这里,任何帮助都将不胜感激
对评论的答复:
mysql> GRANT ALL PRIVILEGES ON . TO 'logesh'@'localhost' IDENTIFIED BY '%logesh%' WITH GRANT OPTION;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. TO 'logesh'@'localhost' IDENTIFIED BY '%logesh%' WITH GRANT OPTION' at line 1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'logesh'@'localhost' IDENTIFIED BY '%logesh%' WITH GRANT OPTION;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '%logesh%' WITH GRANT OPTION' at line 1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'logesh'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
我只能执行第三个命令,我已经试过了
编辑:
这个问题不是重复的,因为在发布这个问题之前,我已经尝试了所有推荐的解决方案 您使用的是哪个版本的Spring Boot和MySQL?我创建了一个最小的应用程序,它工作得很好(这里的源代码:) 还要注意,MySQL的当前JDBC驱动程序类名是
com.MySQL.cj.JDBC.driver
运行MySQL
创建数据库和用户
pom.xml
运行应用程序:
您使用的是哪个版本的Spring Boot和MySQL?我创建了一个最小的应用程序,它工作得很好(这里的源代码:) 还要注意,MySQL的当前JDBC驱动程序类名是
com.MySQL.cj.JDBC.driver
运行MySQL
创建数据库和用户
pom.xml
运行应用程序:
用户名后面似乎有一些尾随空格。
请您检查一下您的用户名或密码后的属性文件中是否有空格。如果
logesh
后面有空格,只需将其删除。用户名后面似乎有空格。请您检查一下您的用户名或密码后的属性文件中是否有空格。如果
logesh
后面有空格,只需将其删除。授予所有权限即可。使用GRANT选项发送到由“%logesh%”标识的“logesh”@“localhost”@INDRESHKHANDELWAL:我已经试过这些命令了,但是没有用。。。我也会发布这个结果…你能检查一下你的用户名或密码后的属性文件中是否有空格吗。如果logesh
后面有空格,请将其删除。非常感谢!有尾随空格。我纠正了它,它现在可以工作:)可能重复授予的所有特权。使用GRANT选项发送到由“%logesh%”标识的“logesh”@“localhost”@INDRESHKHANDELWAL:我已经试过这些命令了,但是没有用。。。我也会发布这个结果…你能检查一下你的用户名或密码后的属性文件中是否有空格吗。如果logesh
后面有空格,请将其删除。非常感谢!有尾随空格。我纠正了它,它现在工作:)可能重复的
2018-12-09T12:48:52.494621Z 150 Connect logesh@localhost on devops using SSL/TLS
2018-12-09T12:48:52.494773Z 150 Connect Access denied for user 'logesh'@'localhost' (using password: YES)
2018-12-09T12:48:54.243711Z 151 Connect logesh@localhost on devops using SSL/TLS
2018-12-09T12:48:54.243881Z 151 Connect Access denied for user 'logesh'@'localhost' (using password: YES)
2018-12-09T12:48:56.328126Z 152 Connect logesh@localhost on devops using SSL/TLS
2018-12-09T12:48:56.328291Z 152 Connect Access denied for user 'logesh'@'localhost' (using password: YES)
2018-12-09T13:10:46.485311Z 153 Connect root@localhost on devops using SSL/TLS
2018-12-09T13:10:46.486314Z 153 Query select @@version_comment limit 1
2018-12-09T13:11:07.220308Z 153 Quit
2018-12-09T13:12:52.763898Z 154 Connect logesh@localhost on devops using SSL/TLS
2018-12-09T13:12:52.764643Z 154 Query select @@version_comment limit 1
2018-12-09T13:13:15.186763Z 154 Quit
2018-12-09T13:27:57.857455Z 155 Connect logesh@localhost on devops using SSL/TLS
2018-12-09T13:27:57.861872Z 155 Query /* mysql-connector-java-8.0.13 (Revision: 66459e9d39c8fd09767992bc592acd2053279be6) */SELECT @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@collation_server AS collation_server, @@collation_connection AS collation_connection, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_write_timeout AS net_write_timeout, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@transaction_isolation AS transaction_isolation, @@wait_timeout AS wait_timeout
2018-12-09T13:27:57.877332Z 155 Query SET NAMES utf8mb4
mysql> GRANT ALL PRIVILEGES ON . TO 'logesh'@'localhost' IDENTIFIED BY '%logesh%' WITH GRANT OPTION;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. TO 'logesh'@'localhost' IDENTIFIED BY '%logesh%' WITH GRANT OPTION' at line 1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'logesh'@'localhost' IDENTIFIED BY '%logesh%' WITH GRANT OPTION;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '%logesh%' WITH GRANT OPTION' at line 1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'logesh'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
↪ docker run -P --name some-mysql -e MYSQL_ROOT_PASSWORD=logesh -d mysql:8 00:52:54
cc395e45faa5d1cc3fdff3eeb35a6491202b75862ae5a519901c10fe02a80403
↪ docker ps 00:53:08
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc395e45faa5 mysql:8 "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:32773->3306/tcp, 0.0.0.0:32772->33060/tcp some-mysql
CREATE DATABASE devops;
CREATE USER 'logesh' IDENTIFIED BY 'logesh';
GRANT ALL ON devops.* TO 'logesh';
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.stackoverflow</groupId>
<artifactId>q53692999</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>q53692999</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
spring.datasource.url=jdbc:mysql://localhost:32773/devops
spring.datasource.username=logesh
spring.datasource.password=logesh
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
2018-12-17 00:51:56.267 INFO 16686 --- [ main] com.stackoverflow.q53692999.Main : Starting Main on apadana with PID 16686 (~/Documents/projects/q53692999/target/classes started by foo in ~/Documents/projects/q53692999)
2018-12-17 00:51:56.269 INFO 16686 --- [ main] com.stackoverflow.q53692999.Main : No active profile set, falling back to default profiles: default
2018-12-17 00:51:56.553 INFO 16686 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2018-12-17 00:51:56.568 INFO 16686 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 11ms. Found 0 repository interfaces.
2018-12-17 00:51:56.777 INFO 16686 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2018-12-17 00:51:56.965 INFO 16686 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2018-12-17 00:51:56.994 INFO 16686 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2018-12-17 00:51:57.022 INFO 16686 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.3.7.Final}
2018-12-17 00:51:57.023 INFO 16686 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2018-12-17 00:51:57.084 INFO 16686 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2018-12-17 00:51:57.142 INFO 16686 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2018-12-17 00:51:57.444 INFO 16686 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2018-12-17 00:51:57.526 INFO 16686 --- [ main] com.stackoverflow.q53692999.Main : Started Main in 1.446 seconds (JVM running for 1.746)
2018-12-17 00:51:57.529 INFO 16686 --- [ Thread-5] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2018-12-17 00:51:57.531 INFO 16686 --- [ Thread-5] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2018-12-17 00:51:57.534 INFO 16686 --- [ Thread-5] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
Process finished with exit code 0