发布
社区首页 >问答首页 >尽管设置与DBCP和JDBC完全相同,HikariCP仍会为用户抛出拒绝访问。

尽管设置与DBCP和JDBC完全相同,HikariCP仍会为用户抛出拒绝访问。
EN

Stack Overflow用户
提问于 2016-05-04 16:58:05
回答 2查看 3.1K关注 0票数 2

我试图使用HikariCP作为连接池,但是尽管使用了与DBCP相同的设置(我已经验证过),但是访问被拒绝了,这些设置与我使用的直接JDBC连接相同。我搞不懂为什么会被拒绝。

例外情况:

代码语言:javascript
代码运行次数:0
复制
Caused by: java.sql.SQLException: Access denied for user 'TestUser'@'localhost' (using password: YES)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
        at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1206)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2239)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2270)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2069)
        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:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
        at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:422)
        at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:134)
        at com.zaxxer.hikari.pool.BaseHikariPool.addConnection(BaseHikariPool.java:444)
        at com.zaxxer.hikari.pool.BaseHikariPool.initializeConnections(BaseHikariPool.java:548)
        ... 13 more

我的JDBC是:jdbc:mysql://localhost:3307/Test,它是100%正确的(包括端口)。

我所做的唯一的事情是:

代码语言:javascript
代码运行次数:0
复制
    //Start our configuration
    HikariConfig config = new HikariConfig();

    //Set the connection settings
    config.setJdbcUrl( "jdbc:mysql://localhost:3307/Test" );
    config.setUsername( "TestUser" );
    config.setPassword( "test" );

    //Data source class
    config.setDataSourceClassName( "com.mysql.jdbc.jdbc2.optional.MysqlDataSource" );

    //Set our settings
    config.addDataSourceProperty( "cachePrepStmts", "true") );
    config.addDataSourceProperty( "prepStmtCacheSize", "250" );
    config.addDataSourceProperty( "prepStmtCacheSqlLimit", "2048" );

    //Create the datasource
    dataSource = new HikariDataSource(config);

我正在使用Java 6。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-04 17:00:34

在这里找到答案:https://github.com/brettwooldridge/HikariCP/issues/386#issuecomment-132256375

我要注意的是,您应该使用dataSourceClasName和“dataSource”。属性(用于服务器、端口等)、或根本不使用dataSourceClassName,只需使用jdbcUrl (但继续使用“dataSource”)。财产)。

票数 1
EN

Stack Overflow用户

发布于 2017-08-08 19:13:51

从数据源中删除密码字段,由于MySql而面临的问题没有在其库中存储任何密码,而是从您试图与密码建立连接的代码中存储任何密码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37033838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档