为 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 服务器时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章