Play Framework连接到数据库

时间:2014-04-03 15:28:31

标签: mysql database playframework playframework-2.0

我一直在关注Play Framework的Typesafe在线培训(我在网页设计方面是一个完整的初学者),一切正常,直到我们应该连接到数据库的部分。

当我在第二课时看到第二个视频: https://typesafe.com/how/online-training/play-java

我遇到了问题,这是我尝试刷新浏览器时收到的错误消息:

Cannot connect to database [default]
In /Users/Arash/playconf/conf/application.conf at line 43.
40 db.default.driver=com.mysql.jdbc.Driver
41
 # Here we add the database that we have created locally
43 db.default.url="jdbc:mysql://localhost:3306/playconf"
44
45 # We set this to root, we login as root with no password
46 db.default.user=root

这是我终端中的错误消息(正在播放)

  

[error] c.j.b.h.Abs​​tractConnectionHook - 无法获得初始值   连接睡眠0ms并再次尝试。尝试离开:0。   例外:null.Message:未知数据库' playconf' [错误]   申请 -

     

! @ 6hmk31f56 - 内部服务器错误,对于(GET)[/] - >

     

play.api.Configuration $$ anon $ 1:配置错误[无法连接到   数据库[默认]]在   play.api.Configuration $ .play $ API $配置$$ configError(Configuration.scala:92)   〜[play_2.10.jar:2.2.2] at   play.api.Configuration.reportError(Configuration.scala:570)   〜[play_2.10.jar:2.2.2] at   play.api.db.BoneCPPlugin $$ anonfun $ $调用onStart 1.适用(DB.scala:252)   〜[play-jdbc_2.10.jar:2.2.2] at   play.api.db.BoneCPPlugin $$ anonfun $ $调用onStart 1.适用(DB.scala:243)   〜[play-jdbc_2.10.jar:2.2.2] at   scala.collection.TraversableLike $$ anonfun $表$ 1.适用(TraversableLike.scala:244)   〜[scala-library.jar:na] at   scala.collection.TraversableLike $$ anonfun $表$ 1.适用(TraversableLike.scala:244)   〜[scala-library.jar:na]引起:   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知   数据库' playconf'在   sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)   〜[na:1.8.0] at   sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)   〜[na:1.8.0] at   sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)   〜[na:1.8.0] at   java.lang.reflect.Constructor.newInstance(Constructor.java:408)   〜[na:1.8.0]在com.mysql.jdbc.Util.handleNewInstance(Util.java:411)   〜[mysql-connector-java-5.1.26.jar:na] at   com.mysql.jdbc.Util.getInstance(Util.java:386)   〜[MySQL的连接器的Java-5.1.26.jar:NA]

我尽可能准确地遵循了一切,但是我得到了这个错误,我整天都被困在这里。非常令人沮丧......

然后我想,哦,也许我没有mysql?所以我使用自制软件安装了mysql,并再次尝试,但得到了同样的错误。

这是我的代码与数据库有关:

在配置文件中:

# We add our sql driver, which we have added in the build.sbt file
 # db.default.driver=org.h2.Driver # This is the original, commented out originally
 db.default.driver=com.mysql.jdbc.Driver

 # Here we add the database that we have created locally
 db.default.url="jdbc:mysql://localhost:3306/playconf"

 # We set this to root, we login as root with no password
 db.default.user=root

在构建文件中:

libraryDependencies ++= Seq(
    javaEbean,
    "mysql" % "mysql-connector-java" % "5.1.26",
    "org.webjars" %% "webjars-play" % "2.2.0",
    "org.webjars" % "bootstrap" % "2.3.1")

好的,所以我似乎必须创建数据库,现在我已经这样做了,但我无法访问数据库。我收到ERROR 1044(42000):用户访问被拒绝'' localhost'到数据库' playconf'

3 个答案:

答案 0 :(得分:9)

您需要在MySQL服务器中手动创建此playconf数据库,使用示例公共数据库GUI(它不会像在H2中那样自动创建)

执行此操作后,终止正在运行的应用程序并再次运行它。

答案 1 :(得分:2)

首先测试与数据库的连接:
似乎架构不存在或者您的用户无法访问它!

试试这个并发布输出

 mysql -uroot -p <passwrd> -e 'use playconf;

答案 2 :(得分:0)

<强> application.conf

db.default.driver = com.mysql.jdbc.Driver

db.default.url =&#34; jdbc:mysql://127.0.0.1:3306 / dbname&#34;

db.default.user = root

db.default.password = 12345

db.default.host = localhost

无需为用户,密码,主机和驱动程序字段使用双引号。

<强> built.sbt

添加mysql连接器。

libraryDependencies ++ = Seq( javaJdbc,   缓存,   javaws的,   过滤器,   &#34; MySQL的&#34; %&#34; mysql-connector-java&#34; %&#34; 5.1.18&#34; )