SpringBoot通过yml文件连接MySQL遇到的问题


问题1

之前都是通过XML文件连接MySQL和其他相关的配置的,然后发现yml这种方式比较方便又简洁,不过要小心空格问题。在配置MySQL的连接信息后,启动项目后总是报错:
在这里插入图片描述
这是我的配置方式:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: !1234
    url:  jdbc:mysql://localhost:3306/premission?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

解决

当我将连接密码设置成全英文的时候发现可以正常启动的~但上面这种却不行,百度了一下,有人也遇到过这种问题,不过他是全数字的,然后说用单引号将密码括起来,依葫芦画瓢,我也用单引号括起来,然后就可以了。

问题2

The server time zone value 'XXXXXX' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to util。这是控制台报的第二个错误,好像是数据库的时区设置有问题(话说我以前也连的好好的,怎么就有这种错误呢,难道是因为yml文件连接就会产生这种问题?有点扯淡…)

解决

在这里插入图片描述

问题3

吐槽:有、烦~

java.sql.SQLException: Unknown system variable 'query_cache_size'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:545)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:115)
at com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1983)
at com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1936)
at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1422)
at com.mysql.cj.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:2831)
at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:2381)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:1739)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:1596)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:633)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:347)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:219)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)

解决

说是连接MySQL的驱动的版本不一致的问题我的mysql是8.0的,在maven中,将我的连接驱动改成8.0版本
在这里插入图片描述


  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
你可以通过以下步骤来测试Spring Boot是否成功整合MySQL: 1. 确保你的项目中已经添加了MySQL的依赖,例如在pom.xml文件中添加如下依赖: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> ``` 2. 在Spring Boot的配置文件(application.properties或application.yml)中配置MySQL连接信息,例如: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=username spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 这里需要根据实际情况修改数据库URL、用户名和密码。 3. 创建一个实体类(Entity)用于映射MySQL中的表结构,例如: ```java @Entity @Table(name = "mytable") public class MyEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // 其他属性和getter/setter方法 } ``` 4. 创建一个Repository接口来操作MySQL数据库,继承自Spring Data JPA的`JpaRepository`接口,例如: ```java @Repository public interface MyEntityRepository extends JpaRepository<MyEntity, Long> { // 可以在这里定义自定义的查询方法 } ``` 5. 在需要使用MySQL的地方注入`MyEntityRepository`,并进行相应的操作,例如在一个Service类中: ```java @Service public class MyService { private final MyEntityRepository repository; public MyService(MyEntityRepository repository) { this.repository = repository; } public void doSomething() { // 使用repository进行数据库操作 // ... } } ``` 6. 编写相应的测试类,使用JUnit或其他测试框架进行测试,例如: ```java @RunWith(SpringRunner.class) @SpringBootTest public class MyServiceTest { @Autowired private MyService myService; @Test public void testDoSomething() { // 测试逻辑 } } ``` 如果你按照以上步骤配置和编写代码,并能够成功启动应用程序并进行MySQL相关的操作,那么说明Spring Boot已经成功整合了MySQL。如果在测试过程中遇到任何问题,请提供详细的错误信息以便我能够更好地帮助你解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

legendaryhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值