为 Play 框架 1.3.0 Web 应用程序配置 MySQL 服务器时遇到问题

Posted

技术标签:

【中文标题】为 Play 框架 1.3.0 Web 应用程序配置 MySQL 服务器时遇到问题【英文标题】:Trouble configuring MySQL server for Play framework 1.3.0 web app 【发布时间】:2018-07-17 17:54:44 【问题描述】:

我在尝试连接到我的 mysql 服务器后尝试在 localhost:9000 打开我的 Web 应用程序时收到以下错误(我可以确认它在端口 3306、主机名 127.0.0.1、用户群、传递基础上运行,使用数据库库)。我在我的配置文件中使用以下配置

db.default=mysql://base:base@localhost/base.

我知道这是一个非常简单的配置错误,但我对 MySQL 和 Play 框架都很陌生,很难找到正确配置此版本 Play 的示例。我已阅读有关数据库配置和https://www.playframework.com/documentation/1.2.7/guide1 的相关文档。我是否需要调整相关 Java 应用程序文件的某些部分?下面是堆栈跟踪。非常感谢任何帮助。

13:51:54,048 ERROR ~

@78ikb4bdh
Internal Server Error (500) for request GET /

Database error
A database error occured: Cannot connected to the database[default], Could not create connection to database server.

play.exceptions.DatabaseException: Cannot connected to the database[default], Could not create connection to database server.
    at play.db.DBPlugin.onApplicationStart(DBPlugin.java:196)
    at play.plugins.PluginCollection.onApplicationStart(PluginCollection.java:515)
    at play.Play.start(Play.java:537)
    at play.Play.detectChanges(Play.java:641)
    at play.Invoker$Invocation.init(Invoker.java:198)
    at Invocation.HTTP Request(Play!)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
    at jdk.internal.reflect.GeneratedConstructorAccessor21.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at com.mysql.jdbc.Util.handleNewInstance(Util.Java:409)
    at com.mysql.Jdbc.Util.getInstance(Util.java: 384)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.Java:973)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2588)
    at com.mysql.jdbc.ConnectionImpl.createNewlO(ConnectionImpl.Java:2321)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.Java:46)
    at jdk.internal.reflect.GeneratedConstructorAccessor18.newInstance(Unknown Source)
    at Java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
    at com.mysql.jdbc.NonregisteringDriver.connect(NonregisteringDriver.Java:344)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.Java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at play.db.DBPlugin.onApplicationStart(DBPlugin.java:125)
    ... 5 more
Caused by: java.lang.NullPointerException
    at com.mysql.jdbc.ConnectionImpl.getserverCharacterEncoding(ConnectionImpl.Java:3307)
    at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqllO.java:1985)
    at com.mysql.Jdbc.MysqlIO.proceedHandshakewithPluggableAuthentication(MysqlIO.java:1911)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288)
    at com.mysql.Jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2506)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2539)
    ... 16 more

【问题讨论】:

这个问题一团糟。底部没有堆栈跟踪 感谢任何有关格式化的建议。我是新用户,所以我不能发布图片,堆栈跟踪是底部的超链接。 【参考方案1】:

我建议您查看以下文档: https://www.playframework.com/documentation/1.2.7/configuration#db.url

对于本地 MySQL5 数据库:

db=mysql:user:pwd@database_name

或者在你的情况下,

db.default=mysql:base:base@localhost/base

【讨论】:

以上是关于为 Play 框架 1.3.0 Web 应用程序配置 MySQL 服务器时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

play框架使用起来(17)

Play 框架和 JSON Web 令牌

Play 框架作为游戏服务器

有没有相当于Play的桌面!框架?

如何使用 play 框架访问 phpmyadmin 数据库

在 weblogic 上部署 play 框架