【问题标题】:Play Framework connecting to databasePlay 框架连接数据库
【发布时间】:2014-05-15 13:17:53
【问题描述】:

我一直在关注 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$Configuration$$configError(Configuration.scala:92) ~[play_2.10.jar:2.2.2] 在 play.api.Configuration.reportError(Configuration.scala:570) ~[play_2.10.jar:2.2.2] 在 play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:252) ~[play-jdbc_2.10.jar:2.2.2] 在 play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:243) ~[play-jdbc_2.10.jar:2.2.2] 在 scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) ~[scala-library.jar:na] 在 scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) ~[scala-library.jar:na] 原因: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知 数据库“playconf”在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) ~[na:1.8.0] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0] 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0] 在 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] 在 com.mysql.jdbc.Util.getInstance(Util.java:386) ~[mysql-connector-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): Access denied for user ''@'localhost' to database 'playconf'

【问题讨论】:

标签: mysql database playframework playframework-2.0


【解决方案1】:

你需要在你的 MySQL 服务器中手动创建这个 playconf 数据库,使用一个常见的 DB GUI 示例(它不会像在 H2 中那样自动创建)

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

【讨论】:

  • 谢谢,这在视频中没有解释,我假设数据库是由代码创建的。太棒了,花了 7 个小时搞定这么简单的事情......
  • 好吧,我不知道教程,但这是 DB(不是 Play)的工作 - 只是 H2 在尝试连接时会创建新的 DB,而 MySQL 不会,如果这解决了您的问题,请标记答案作为正确的一个
  • @biesior 我正在尝试在“github.com/nulab/scala-oauth2-provider”中使用 oauth2。但是在github上,他们已经使用了postgresql数据库。但是我想在MYSQL中使用它。当我将依赖项更改为 "mysql" % "mysql-connector-java" % "5.1.18" 和 jdbc 时,即使我手动在 mysql 中创建表,我也收到了此问题中提到的上述错误。请帮我解决这个问题?
【解决方案2】:

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

试试这个并发布输出

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

【讨论】:

  • 当我输入这个命令时,输出很简单:>(之后我可以输入任何内容)
  • 你有没有写你的root密码
【解决方案3】:

application.conf

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

db.default.url = "jdbc:mysql://127.0.0.1:3306/dbname"

db.default.user = root

db.default.password = 12345

db.default.host = 本地主机

用户、密码、主机和驱动字段无需使用双引号。

built.sbt

添加 mysql 连接器。

libraryDependencies ++= Seq( javaJdbc, 缓存, javaWs, 过滤器, “mysql”%“mysql-connector-java”%“5.1.18” )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 2022-12-13
    • 1970-01-01
    相关资源
    最近更新 更多