2013-03-18 5 views
0

Я не могу подключить мое приложение к базе данных с помощью Cloudbees.Play 2.1 на Cloudbees с MySQL: не найдено подходящего драйвера

у меня в файле конфигурации:

# 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 в моем 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 

Я чувствую, что я пропустил что-то чтение документации, но не может найти то, что ...

Спасибо,

EDIT: Вы можете найти мое тестовое приложение на Github. Щедрость предназначена для того, кто будет управлять развертыванием на Cloudbees (и объясняет, как это сделать). Конфигурация Cloudbees не включена в Github.

+0

Для полного журнала вы можете посмотреть здесь: https://gist.github.com/adericbourg/5189037 –

+0

Вы пытались предоставить версию 5.1.18? Работает на меня. – smk

+0

Я сделал. Но это ничего не изменило ... –

ответ

-1

Эй, я просто исправил это как сейчас. :)

Вы должны изменить mysql_url к

MYSQL_URL_DB = JDBC: MySQL: // хост: 3306/мой-приложение

Дело в том, что URL по умолчанию указывает на драйвер cloudbees и так мы используем драйвер mysql, нам нужно изменить его на url mysql.

+0

так @smk, когда вы говорите «хозяин», вы буквально означаете «хозяин»? Или вы имеете в виду адрес amazon-ec3, видимый на странице конфигурации базы данных cloudbees? – poornerd

+0

amazon-ec2 .. извините. Я не был чист. – smk

+0

Я обновил свою конфигурацию до '' 'MYSQL_URL_DB = jdbc: mysql: //ec2-23-21-211-172.compute-1.amazonaws.com: 3306/foo''', но я получаю ту же ошибку. Weird ... –

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:[email protected]/DATABASE_NAME" 
db.default.user=dbusername 
db.default.password=dbpassword 

Работы хорошо для меня.

Надеюсь, это поможет.

+0

Я все еще получаю те же журналы, которые имеют '' '502 Bad Gateway''' при доступе к приложению :-( Проблема должна быть глубже, чем просто конфигурация БД ... –

+0

Работает в режиме разработчика (в локальном хосте) работает? –

+0

db.default.url = "jdbc: mysql: //ec2-23-21-211-172.compute -1.amazonaws.com:3306/projwebwsdb "это URL-адрес моей базы данных cloudbees. Если бы я был на вашем месте, я бы попытался работать с базой данных cloudbees в вашем режиме разработчика (не в облаках). база данных с клиентом mysql, например SequelPro (для Mac OS) или MySQL Workb Ench. –

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: - только mysql://ec2-23-21-211-172.compute-1.amazonaws.com:3306/my-app недостаточно, поскольку URL