【问题标题】:changing h2 to mysql db on spring boot get error在spring boot上将h2更改为mysql db得到错误
【发布时间】:2021-02-23 03:15:50
【问题描述】:

我正在开发 Spring Boot v2.3.5。

我的问题是我设置了我的变量 “hibernate.dialect” 到 MySQL5InnoDBDialect。

然后在创建表时返回MySQL语法错误。

Syntax error in SQL statement "CREATE TABLE A (ID BIGINT NOT NULL AUTO_INCREMENT, ACCESS_TOKEN VARCHAR(2000) NOT NULL, CREATE_DATE DATETIME NOT NULL, REFRESH_TOKEN VARCHAR(2000) NOT NULL, USER_NO VARCHAR(100) NOT NULL, PRIMARY KEY (ID)) ENGINE=[*]INNODB"; expected "identifier"; SQL statement

但实际上,当我复制该命令时,它可以工作。另外,当我将选项从 Innodb 更改为 H2 db 时,它可以工作。

对我的问题有什么想法吗?

【问题讨论】:

  • 您是否还更新了其他连接属性,例如 url、用户名、密码...?
  • 不,我只是使用默认数据库。 “spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect”我的测试代码在 H2 db 上运行,但是当我将 h2 db 更改为使用 Mysql 语法时,它不起作用
  • 这样换驱动怎么样:spring.datasource.driver-class-name=com.mysql.jdbc.Driver

标签: spring spring-boot jpa innodb h2


【解决方案1】:

如果您在不同的数据库之间切换数据源,您必须正确更新配置。根据您提供的可用信息,我认为您需要按如下方式对其进行更新:

spring.jpa.properties.hibernate.dialect = MySQL5InnoDBDialect
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost/yourDbName
spring.datasource.username = dbUsername
spring.datasource.password = dbPassword

请根据您的环境更新网址、用户名和密码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-15
    • 2017-01-16
    • 1970-01-01
    • 2018-01-11
    • 2020-10-23
    • 2017-07-10
    • 1970-01-01
    • 2019-07-27
    相关资源
    最近更新 更多