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

时间:2013-03-18 11:59:43

标签: 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: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

读这个,似乎是实际声明了驱动程序。 dependdenci在我的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上提交。

3 个答案:

答案 0 :(得分: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中数据库的用户名和密码。)< / p>

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

对我来说很好。

希望这有帮助。

答案 1 :(得分: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网址前加上jdbc: - 只有mysql://ec2-23-21-211-172.compute-1.amazonaws.com:3306/my-app不足以作为网址

答案 2 :(得分:-1)

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

您需要将mysql_url更改为

MYSQL_URL_DB = JDBC:MySQL的://主机:3306 /我的应用内

事实是它默认url指向cloudbees驱动程序,因为我们使用mysql驱动程序,我们需要将它更改为mysql url。