Java 使用play framework连接mysql db时出现异常

Java 使用play framework连接mysql db时出现异常,java,mysql,playframework,Java,Mysql,Playframework,我正在使用PlayFramework(2.3.x)应用程序。我想连接到mysql数据库。下面是我在application.conf中给出的配置: db.default.driver="com.mysql.jdbc.Driver" db.default.url="jdbc:mysql://localhost/mydb" db.default.jndiName=DefaultDS db.default.username=root db.default.password=root db.default

我正在使用PlayFramework(2.3.x)应用程序。我想连接到mysql数据库。下面是我在
application.conf
中给出的配置:

db.default.driver="com.mysql.jdbc.Driver"
db.default.url="jdbc:mysql://localhost/mydb"
db.default.jndiName=DefaultDS
db.default.username=root
db.default.password=root
db.default.logStatements=true
jpa.default=defaultPersistenceUnitName
当我运行应用程序时,我得到以下异常

Oops, cannot start the server.
Configuration error: Configuration error[Cannot connect to database [default]]
    at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:94)
    at play.api.Configuration.reportError(Configuration.scala:743)
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:247)
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:238)
    at scala.collection.immutable.List.map(List.scala:273)
    at play.api.db.BoneCPPlugin.onStart(DB.scala:238)
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
    at play.api.Play$.start(Play.scala:90)
    at play.core.StaticApplication.<init>(ApplicationProvider.scala:55)
    at play.core.server.NettyServer$.createServer(NettyServer.scala:253)
    at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:289)
    at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:284)
    at scala.Option.map(Option.scala:146)
    at play.core.server.NettyServer$.main(NettyServer.scala:284)
    at play.core.server.NettyServer.main(NettyServer.scala)
Caused by: java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1665)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1207)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2249)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2280)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2079)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:400)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:363)
    at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:416)
    at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:120)
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:240)
    ... 18 more
Oops,无法启动服务器。
配置错误:配置错误[无法连接到数据库[默认]]
at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:94)
at play.api.Configuration.reportError(Configuration.scala:743)
at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(db.scala:247)
at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(db.scala:238)
位于scala.collection.immutable.List.map(List.scala:273)
at play.api.db.BoneCPPlugin.onStart(db.scala:238)
在play.api.play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(play.scala:91)
在play.api.play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(play.scala:91)
位于scala.collection.immutable.List.foreach(List.scala:381)
在play.api.play$$anonfun$start$1.apply$mcV$sp(play.scala:91)
在play.api.play$$anonfun$start$1.apply(play.scala:91)
在play.api.play$$anonfun$start$1.apply(play.scala:91)
在播放时.utils.Threads$.withContextClassLoader(Threads.scala:21)
在play.api.play$.start(play.scala:90)
正在运行.core.StaticApplication。(ApplicationProvider.scala:55)
播放时.core.server.NettyServer$.createServer(NettyServer.scala:253)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:289)
at play.core.server.NettyServer$$annfun$main$3.apply(NettyServer.scala:284)
在scala.Option.map处(Option.scala:146)
at play.core.server.NettyServer$.main(NettyServer.scala:284)
正在运行的.core.server.NettyServer.main(NettyServer.scala)
原因:java.sql.SQLException:用户“@”localhost的访问被拒绝(使用密码:是)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)上
在com.mysql.jdbc.MysqlIO.checkErrorPacket上(MysqlIO.java:3783)
在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)上
在com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1665)上
位于com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1207)
位于com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2249)
位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2280)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2079)
位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:794)
位于com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:44)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:422)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:400)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
位于java.sql.DriverManager.getConnection(DriverManager.java:664)
位于java.sql.DriverManager.getConnection(DriverManager.java:247)
位于com.jolbox.bonecp.bonecp.obtainRawInternalConnection(bonecp.java:363)
在com.jolbox.bonecp.bonecp.(bonecp.java:416)
位于com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:120)
at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(db.scala:240)
... 还有18个
  • 我已经创建了数据库,并且可以与mysql控制台一起使用

  • 我将persistence.xml放在conf/META-INF中。下面是persistence.xml

  • 我拥有拥有所有权限的root用户


  • 有人能帮我吗?

    您没有通过登录,如第行所示

    原因:java.sql.SQLException:用户“@”localhost的访问被拒绝(使用密码:YES)
    根据,正确的配置是
    db.default.user
    而不是
    db.default.username
    。这可能就是例外的原因。因此,请将配置更改为:

    db.default.driver="com.mysql.jdbc.Driver"
    db.default.url="jdbc:mysql://localhost/mydb"
    db.default.jndiName=DefaultDS
    db.default.user=root
    db.default.password=root
    db.default.logStatements=true
    jpa.default=defaultPersistenceUnitName
    

    db.default.username=root db.default.password=root db凭据存在于config.yup中。我注意到并纠正了它。工作正常。谢谢