【问题标题】:dateCreated/ lastUpdated set to 0000-00-00 00:00:00 in grails when using mariaDb galera cluster使用 mariaDb galera 集群时,在 grails 中 dateCreated/lastUpdated 设置为 0000-00-00 00:00:00
【发布时间】:2026-01-11 00:45:02
【问题描述】:

我最近使用 grails-2.2.4 更新了我的 grails 应用程序,从使用 mysql 到 mariadb 版本 10.0.15-MariaDB-wsrep grails,我正在使用 galera 来支持 3 节点集群。 mysql 应用程序一切正常,但在我切换到 mariadb 后,dateCreated / lastUpdated 字段不会自动获取新的时间戳,而是设置为 0000-00-00 00:00:00。 我已经试过了

static mapping = {
    autoTimestamp true
}

在我的域设置和全局设置中

grails.gorm.default.mapping = {
autoTimestamp true 
}

但是还是不行

我也尝试将默认值设置为

 dateCreated=new Date();

【问题讨论】:

  • 您之前使用的是哪个版本的 MySQL? (TIMESTAMP 默认值发生了变化;grails 可能还没有修复——只是一个疯狂的猜测。)
  • 我一直在不同的mysql版本中使用该应用程序,因为生产和开发中的应用程序是不同的。目前服务器中部署的mysql版本为5.1.55-community
  • 与 grails 讨论他们对日期的处理。

标签: mysql datetime grails datasource mariadb


【解决方案1】:

尝试将您的 mysql 连接器升级到最新版本。在你的 buildconfig 文件中

依赖项- 运行时'mysql:mysql-connector-java:5.1.34'

应该可以了!

【讨论】: