Java 赫罗库·元';t接受所需的URL参数以防止MySql zeroTimeBehavior错误
我已经开发了一个Play/Scala应用程序,它运行在本地MySql上。但是一个必需的数据库URL参数,Java 赫罗库·元';t接受所需的URL参数以防止MySql zeroTimeBehavior错误,java,heroku,playframework,Java,Heroku,Playframework,我已经开发了一个Play/Scala应用程序,它运行在本地MySql上。但是一个必需的数据库URL参数,zeroDateTimeBehavior=convertToNull(Java时间戳)被Heroku所做的URL的进一步浓缩所破坏,因此我的应用程序无法连接到ClearDB(Heroku MySql产品) 这是我的数据库URL: db.default.url="mysql://be32d43afc3cb7:c73c404d@us-cdbr-east-03.cleardb.com/heroku_
zeroDateTimeBehavior=convertToNull
(Java时间戳)被Heroku所做的URL的进一步浓缩所破坏,因此我的应用程序无法连接到ClearDB
(Heroku MySql产品)
这是我的数据库URL:
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还将几个参数连接到它们提供给用户的DB URL。由于Heroku在自己的参数集之前使用了“?”串联,因此尝试将我自己的参数添加到DB URL将不起作用。然而,我找到了一个不同的解决方案,似乎同样有效
SET sql_mode = 'NO_ZERO_DATE';
我把它放在我的表格描述中,它解决了
“0000-00-00 00:00:00”不能表示为java.sql.Timestamp我意识到Heroku期望的是一个没有任何参数的原始URL,它将自己的参数连接到该URL。所以问题是我还能用什么方法处理这个错误:“值'0000-00-00 00:00:00'不能表示为java.sql.Timestamp”?除了URL之外,我还可以如何将参数传递给MySql:zeroDateTimeBehavior=convertToNull