我一直在关注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.AbstractConnectionHook - 无法获得初始值 连接睡眠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'
答案 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; )