【发布时间】:2017-06-29 11:32:50
【问题描述】:
我的应用程序是基于 Grails 和 MySQL 构建的。我们最近将我们的数据库切换到 MariaDB,我知道它完全符合 MySQL。我现在正试图在我的 Grails 应用程序中添加一个新的域对象。表创建失败并出现以下错误。
您的 SQL 语法有误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“type=InnoDB”附近使用的正确语法
Grails 在语句末尾创建 TYPE=INNODB 的表。我发现用 ENGINE=InnoDB 代替 TYPE=INNODB 可以解决这个问题。我在数据库上手动运行了创建表 SQL,它工作正常。但是,我不知道如何让 Grails 使用 ENGINE=INNODB Vs Type=INNODB。
仅供参考。我的应用程序使用 MySQL5InnoDBDialect 和以下驱动程序。
mysql:mysql-connector-java:5.1.32
我用 MariaDB 驱动程序和方言改变了它,但结果是一样的。
【问题讨论】:
-
@Burt Beckwith,感谢您编辑我的问题。
-
TYPE=在经过多年的警告后于 2010 年的 5.5.3 中被删除。 Grails 有多古老? -
我正在使用 Grails 2.4.4
-
在 Jira 中针对 Grails 提交错误。或者看看升级到 3.x 是否会有所帮助。或者可能是更新的连接器。