1

我开发了一个运行在本地MySql上的Play/Scala应用程序。但是需要的数据库 URL 参数(Java TimeStamp)被Heroku所做的 URL 的进一步连接破坏了,因此我的应用程序无法连接到(Heroku MySql 产品)。zeroDateTimeBehavior=convertToNullClearDB

这是我的数据库网址:

db.default.url="mysql://be32d43afc3cb7:c73c404d@us-cdbr-east-03.cleardb.com/heroku_6cf0eb306e78bc8?reconnect=true&zeroDateTimeBehavior=convertToNull"

以及它变形的后续 Heroku 版本:

JDBC URL = jdbc:mysql://us-cdbr-east-03.cleardb.com/heroku_6cf0eb306e78bc8?reconnect=true&zeroDateTimeBehavior=convertToNull?useUnicode=yes&characterEncoding=UTF-8&connectionCollation=utf8_general_ci

?和分隔符发生了一些神秘的事情&

Heroku 说错误是由以下原因引起的:

java.sql.SQLException: The connection property 'zeroDateTimeBehavior' only accepts values of the form: 'exception', 'round' or 'convertToNull'. The value 'convertToNull?useUnicode=yes' is not in this set.

那么,有没有其他方法可以配置这个参数?没有它,我会收到此错误:

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp]]

这敲响了任何人的钟声?非常感谢任何可以阐明的人。

编辑/解决方案: Heroku 还将几个 args 连接到他们提供给用户的 DB URL。因为 Heroku 使用“?”的连接。在他们自己的参数集之前,尝试将我自己的参数添加到数据库 URL 将不起作用。但是我发现了一个不同的解决方案,它似乎同样有效。

SET sql_mode = 'NO_ZERO_DATE';

我把它放在我的表描述中,它解决了 '0000-00-00 00:00:00' 不能表示为 java.sql.Timestamp 的问题

4

0 回答 0