Playframework 在使用MySQL的Cloudbees上玩2.1:找不到合适的驱动程序

Playframework 在使用MySQL的Cloudbees上玩2.1:找不到合适的驱动程序,playframework,cloudbees,playframework-2.1,Playframework,Cloudbees,Playframework 2.1,我无法使用Cloudbees将我的应用程序连接到数据库 我的配置文件中有: # Database configuration # ~~~~~ db.default.driver=${MYSQL_DRIVER} db.default.url=${MYSQL_URL_DB} db.default.user=${MYSQL_USERNAME_DB} db.default.password=${MYSQL_PASSWORD_DB} 在Cloudbees配置中,我有: $ bees config:li

我无法使用Cloudbees将我的应用程序连接到数据库

我的配置文件中有:

# Database configuration
# ~~~~~ 
db.default.driver=${MYSQL_DRIVER}
db.default.url=${MYSQL_URL_DB}
db.default.user=${MYSQL_USERNAME_DB}
db.default.password=${MYSQL_PASSWORD_DB}
在Cloudbees配置中,我有:

$ bees config:list -a me/my-app
Application Parameters:
  proxyBuffering=false
  MYSQL_URL_DB=jdbc:cloudbees://my-app
  MYSQL_USERNAME_DB=my-app
  MYSQL_PASSWORD_DB=dadadadada
  MYSQL_DRIVER=com.mysql.jdbc.Driver
Runtime Parameters:
  java_version=1.7
读到这里,似乎驱动程序实际上是声明的。dependenci位于my Build.scala中:

  val appDependencies = Seq(
    javaCore, 
    javaJdbc, 
    javaEbean,
    "mysql" % "mysql-connector-java" % "5.1.22"
  )
但一开始,我得到:

Caused by: 
    java.sql.SQLException: No suitable driver found for 
    mysql://ec2-23-21-211-172.compute-1.amazonaws.com:3306/my-app
我觉得我在阅读文档时错过了一些东西,但找不到什么

谢谢


编辑:您可以在上找到我的测试应用程序。悬赏是给那些将其部署到Cloudbees上的人的(并解释如何)。Cloudbees配置未在Github上提交。

嘿,我现在就这样解决了这个问题。:)

您需要将mysql\u url更改为

MYSQL\u URL\u DB=jdbc:mysql://host:3306/my-应用程序


问题是,它的默认url指向cloudbees驱动程序,因为我们使用的是mysql驱动程序,所以需要将其更改为mysql url

我建议您尝试使用mysql 5.1.18连接器。我在CloudBees中有一个应用程序,可以很好地使用该连接器。还可以尝试使用本地数据库,以便更容易地查看问题所在

这是我的Build.scala

val appDependencies = Seq(
    // Add your project dependencies here,
    javaCore,
    javaJdbc,
    javaEbean,
    "mysql" % "mysql-connector-java" % "5.1.18"
  )

  val main = play.Project(appName, appVersion, appDependencies)
    .settings(cloudBeesSettings :_*)
    .settings(CloudBees.applicationId := Some("project_test"))
如果此连接器无法解决问题,请尝试application.conf中的下一个配置(特别注意db.default.url中数据库的用户名和密码)

对我来说很好


希望这有帮助。

这里的问题是Cloudbees应用程序参数(您使用
bees config:set
设置的参数)覆盖了您在
conf/application.conf
文件左侧设置的参数

因此,在本例中,您不必将
MYSQL\u URL\u DB
设置为Cloudbees应用程序参数,而是直接将
DB.default.URL

试试看:

bees config:set -a seo-machine -P db.default.url=jdbc:mysql://ec2-23-21-211-172.compute-1.amazonaws.com:3306/my-app
然后重新启动应用程序:

bees app:restart

另外,不要忘记在JDBC URL前面加上
JDBC:
-仅
mysql://ec2-23-21-211-172.compute-1.amazonaws.com:3306/my-应用程序
不足以作为完整日志的URL

,您可以在此处查看:您是否尝试提供5.1.18版本?对我有用,是的。但它并没有改变任何事情……所以@smk当你说“主机”时,你的字面意思是“主机”?还是说cloudbees数据库配置页面上可见的amazon-ec3地址?我将配置更新为
MYSQL\u URL\u DB=jdbc:mysql://ec2-23-21-211-172.compute-1.amazonaws.com:3306/foo
但我得到了同样的错误。奇怪…你能试着重新启动吗。如果存在差异,则发布日志?你会看到更老的日志吗?是我还是Cloudbees SDK有问题?我得到了
ERROR:Server.InternalError-输入字符串:“p”
当我启动
$bees应用程序:实例:restart-I
…我使用了cloudbees play插件并播放了cloudbees部署,我仍然得到了相同的日志,在访问应用程序时有一个
502坏网关
:-(问题必须不仅仅是数据库配置……DB.default.url=“jdbc:mysql://ec2-23-21-211-172.compute-1.amazonaws.com:3306/projwebwsdb“这是我的cloudbees数据库的url。如果我在你的位置,我会尝试在开发人员模式下使用cloudbees数据库(而不是在cloudbees中)。尝试使用mysql客户端(如SequelPro(适用于Mac OS)或mysql Workbench)访问数据库。
bees app:restart