我无法使用 Spring Boot 和 JPA 连接到 mysql 数据库
Posted
技术标签:
【中文标题】我无法使用 Spring Boot 和 JPA 连接到 mysql 数据库【英文标题】:I can't connect to the mysql database with Spring Boot & JPA 【发布时间】:2018-01-06 22:30:02 【问题描述】:springboot 版本 4.3.10 mysql 版本 5.7.18 1.8版 mysql-connector-java 版本 5.1.38
错误 5976 --- [main] o.a.tomcat.jdbc.pool.ConnectionPool:无法创建池的初始连接。 java.sql.SQLException:用户'root'@'localhost'的访问被拒绝(使用密码:否)
【问题讨论】:
错误消息是“用户'root'@'localhost'的访问被拒绝”。检查密码是否正确。 问题是如果您有密码而不是在连接到数据库时没有提供密码,这就是它显示的原因(使用密码:否)。因此,在连接时使用该密码。所以,问题肯定是错误的连接参数。 你试过重设密码还是强行插入root用户? 密码正确,我在DOS下使用密码登录。 参考这个解决方案***.com/questions/52174740/… 【参考方案1】:application.properties 中的示例 mysql 映射
schemaname -> 您尝试连接的 mysql 模式名称
passwordforschema -> 你的架构密码
spring:
datasource:
driver-class-name: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
url: jdbc:mysql://localhost:3306/schemaname
username: root
password: passwordforschema
【讨论】:
这里是配置 #DB spring.datasource.url = jdbc:mysql://localhost:3306/blog?useUnicode=true&useSSL=true spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.username = root spring.datasource.password = 我希望您已经尝试使用您在 spring boot 中使用的相同用户名和密码连接到数据库,并且该用户具有足够的权限。 com.mysql.jdbc.jdbc2.optional.MysqlDataSource 无法转换为 java.sql.Driver 是的,我试过了,但我不知道如何检查权限 这是 GRANT ALL PRIVILEGES ON 的权限。 TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'' TO 'root'@'localhost ' 带有授权选项【参考方案2】:请检查 application.properties 中的配置和数据库属性(有效凭据用户名和密码)
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
点击链接:
https://www.mkyong.com/spring-boot/spring-boot-jdbc-mysql-hikaricp-example/
【讨论】:
【参考方案3】:'root '@'localhost' (使用密码:否)
也许尝试将您的密码配置到您的 mysql 配置中
【讨论】:
我找到了答案,配置文件application.properties错误,我在使用application.yml时,错误消失了。【参考方案4】:我认为您的问题是密码错误。如果您无法解决问题,请尝试检查以下内容。或者你可以先尝试通过IDE连接你的mysql服务器。
-
确保你打开了mysql服务,你可以用IDE数据库功能测试连接它,比如IDEA。
小心
useSSL=false
,有时会致命。
如果你的mysql-connector-java的版本高于8.*,那你可能需要把datasource-driver-name改成com.mysql.cj.jdbc.Driver
虽然春天会帮助你改变。
-
如果您使用表名、列指定 jpa。确保使用正确的语法
@Table(name='xxx')
@Column(name= 'xxx')
注意mysql服务器的端口。
检查 gradle 或 maven 依赖项 这就是我卡住的地方。在窗口中。
netstat -ano |findstr: 3306
taskkill /PID enterPID /F
在 Linux 中
netstat -anp |grep 3306
kill -9 pid
xx.yml需要放入资源(在IDEA中需要指定包为资源包) xxxApplication.class(spring-boot-starter 类应该在其他类之外,或者你应该指定其他类的路径。在 spring-boot 中,您可以自动设置配置。但是您需要将文件正确放置在它们的位置。
【讨论】:
以上是关于我无法使用 Spring Boot 和 JPA 连接到 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot + Spring Data JPA + 事务无法正常工作
Spring-boot JPA 连接到 postgres,其中在运行时提供数据库和模式
无法将 Spring Data MongoDB + Spring Data JPA 与 Spring Boot 一起使用