【发布时间】:2016-09-09 13:20:15
【问题描述】:
我正在尝试在 Playframework 2.4 中连接 MySQL(我创建了 play java 项目)。
我已经通过brew在mac中安装了mysql 5.7,并创建了用户和数据库。
并且我在 application.conf 和 build.sbt 中添加了一些配置。
这里是 application.conf
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/testplay"
db.default.user="test"
db.default.password= "test"
这里是 buid.sbt。
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"mysql" % "mysql-connector-java" % "5.1.35"
)
我已经在项目文件夹中完成了“sbt”和“activator run”。
但是当我连接到http://localhost:9000/ 时,它返回“配置错误无法连接到数据库[db]”。
应用程序日志摘要是
play.api.Configuration$$anon$1: Configuration error[Cannot connect to database [db]]
Caused by: play.api.Configuration$$anon$1: Configuration error[dataSource or dataSourceClassName or jdbcUrl is required.]
at play.api.Configuration$.configError(Configuration.scala:154)
at play.api.PlayConfig.reportError(Configuration.scala:996)
at play.api.db.HikariCPConnectionPool.create(HikariCPModule.scala:70)
at play.api.db.PooledDatabase.createDataSource(Databases.scala:199)
at play.api.db.DefaultDatabase.dataSource$lzycompute(Databases.scala:123)
at play.api.db.DefaultDatabase.dataSource(Databases.scala:121)
at play.api.db.DefaultDatabase.getConnection(Databases.scala:142)
at play.api.db.DefaultDatabase.getConnection(Databases.scala:138)
at play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:44)
... 66 common frames omitted
Caused by: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.
at com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:784)
at play.api.db.HikariCPConfig.toHikariConfig(HikariCPModule.scala:141)
at play.api.db.HikariCPConnectionPool$$anonfun$1.apply(HikariCPModule.scala:57)
at play.api.db.HikariCPConnectionPool$$anonfun$1.apply(HikariCPModule.scala:54)
at scala.util.Try$.apply(Try.scala:192)
at play.api.db.HikariCPConnectionPool.create(HikariCPModule.scala:54
你能告诉我如何解决这个问题吗?
【问题讨论】:
-
我不是要光顾,但MySQL运行对吗?什么版本的 Play,我假设您使用的是 Play-Java?
-
感谢您的评论! Play 版本是 2.4,是的,我正在使用 Play-Java。我以为 MySQL 正在运行..(我通过 ps aux | grep mysqld 检查了它)但是,MySQL 可能存在一些问题。
-
您的配置和依赖项看起来没问题,所以我首先排除 MySQL 没问题,并且您的
testplay架构和凭据正确。 -
我明白了。用户名和密码正确,testplay 的权限也可以。而且,我尝试了 127.0.0.1 而不是 localhost 但我没有工作..
-
我认为 SQL+ 命令行客户端附带 MySql - 您可以尝试通过该客户端连接到您的架构以检查它不是您的 Play 应用程序。
标签: java mysql playframework