0

我无法让我的应用程序使用 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

读到这里,似乎驱动程序实际上已被声明。依赖项在我的 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

我觉得我错过了阅读文档但找不到什么...

谢谢,

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

4

3 回答 3

1

我建议您尝试使用 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 中的数据库的用户名和密码。)。

db.default.driver=com.mysql.jdbc.Driver
db.default.url="mysql://dbusername:dbpassword@localhost/DATABASE_NAME"
db.default.user=dbusername
db.default.password=dbpassword

对我来说很好。

希望这可以帮助。

于 2013-03-20T04:33:39.163 回答
0

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

所以在这种情况下,您不必设置MYSQL_URL_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:- onlymysql://ec2-23-21-211-172.compute-1.amazonaws.com:3306/my-app作为 URL 是不够的

于 2013-04-27T16:19:54.863 回答
-1

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

您需要将 mysql_url 更改为

MYSQL_URL_DB=jdbc:mysql://host:3306/my-app

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

于 2013-03-18T16:59:17.207 回答