play连接mysql数据库报错 -[error] c.z.h.p.HikariPool - HikariPool-1 - Exception during pool initialization.

[info] application - Creating Pool for datasource 'default'
[error] c.z.h.p.HikariPool - HikariPool-1 - Exception during pool initialization.
java.sql.SQLNonTransientConnectionException: Could not create connection to database server.
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:102)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:81)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:55)
        at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:1027)
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843)
        at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440)
        at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
        at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221)
        at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 73
        at com.mysql.cj.mysqla.io.Buffer.readInteger(Buffer.java:271)
        at com.mysql.cj.mysqla.io.MysqlaCapabilities.setInitialHandshakePacket(MysqlaCapabilities.java:62)
        at com.mysql.cj.mysqla.io.MysqlaProtocol.readServerCapabilities(MysqlaProtocol.java:491)
        at com.mysql.cj.mysqla.io.MysqlaProtocol.beforeHandshake(MysqlaProtocol.java:376)
        at com.mysql.cj.mysqla.io.MysqlaProtocol.connect(MysqlaProtocol.java:1404)
        at com.mysql.cj.mysqla.MysqlaSession.connect(MysqlaSession.java:218)
        at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:975)
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843)
        at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440)
        at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
[info] application - Creating Pool for datasource 'default'
[error] c.z.h.p.HikariPool - HikariPool-2 - Exception during pool initialization.
java.sql.SQLNonTransientConnectionException: Could not create connection to database server.
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:102)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:81)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:55)
        at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:1027)
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843)
        at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440)
        at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
        at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221)
        at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 73
        at com.mysql.cj.mysqla.io.Buffer.readInteger(Buffer.java:271)
        at com.mysql.cj.mysqla.io.MysqlaCapabilities.setInitialHandshakePacket(MysqlaCapabilities.java:62)
        at com.mysql.cj.mysqla.io.MysqlaProtocol.readServerCapabilities(MysqlaProtocol.java:491)
        at com.mysql.cj.mysqla.io.MysqlaProtocol.beforeHandshake(MysqlaProtocol.java:376)
        at com.mysql.cj.mysqla.io.MysqlaProtocol.connect(MysqlaProtocol.java:1404)
        at com.mysql.cj.mysqla.MysqlaSession.connect(MysqlaSession.java:218)
        at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:975)
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843)
        at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440)
        at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
[error] application -


! @76po34c2l - Internal server error, for (GET) [/] ->

错误报的比较诡异,既然提示数组越界,纠结了半天。突然想到我是新安装的mysql服务器。把ip地址修改成localhost发现可以正常连接。至此终于找到了问题,还是数据库配置的问题。

解决方案:

我的数据库服务安装在本地,首先本地连接上服务。将mysql数据库下的user表host字段的值改为“%”,之前默认为localhost。


必须记住的1点是需要重启数据库服务。不然有可能不生效。

重新启动play,发现数据库正常连接,至此问题完美解决。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值