【问题标题】:Java: Face Cannot create PoolableConnectionFactory (Access denied for user 'root '@'localhost' (using password: YES)) ExceptionJava:Face 无法创建 PoolableConnectionFactory(用户 'root'@'localhost' 的访问被拒绝(使用密码:YES))异常
【发布时间】:2014-04-11 19:46:39
【问题描述】:

我正在尝试将 Apache DBCP 连接池技术与 Spring 结合使用,而我的数据库是 MySQL。我的 Apache DBCP 配置代码是:

@Bean(destroyMethod = "close") // destroyMethod attribute is used to close the bean
public DataSource dataSource() {
    BasicDataSource dataSource = new BasicDataSource();
       dataSource.setDriverClassName(environment.getRequiredProperty("db.driver"));
    dataSource.setUrl(environment.getRequiredProperty("db.url"));
    dataSource.setUsername(environment.getRequiredProperty("db.username"));
    dataSource.setPassword(environment.getRequiredProperty("db.password"));
    dataSource.setInitialSize(5);
    dataSource.setMaxTotal(5);
    return dataSource;
}

但是当我尝试运行程序时,它会抛出异常:

java.sql.SQLException: Cannot create PoolableConnectionFactory (Access denied for user 'root    '@'localhost' (using password: YES))

为了解决这个异常,我已经google了它,并找到了这个答案:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION;

以 root 用户身份登录。但不幸的是,这不起作用,仍然会发生异常。所以我该怎么做?

我还尝试创建新用户并将所有权限授予新用户,但我仍然面临同样的异常。

【问题讨论】:

    标签: java mysql exception jdbc apache-commons-dbcp


    【解决方案1】:

    您是否注意到错误消息中的多余空格:

    Access denied for user 'root    '@'localhost'
                                ^^^^
    

    删除空格,它可能会起作用。

    【讨论】:

    • 我如何删除这些空格?
    • @HarmeetSingh 查看environment 中如何定义您的属性。如果一切都失败了,你可以trim()他们。
    • 谢谢@Mark Rotteveel,你真的很棒……我的问题已经解决了。非常感谢。这意味着,在授予权限后,这会起作用吗?
    • @HarmeetSingh 授予权限可能是不必要的
    • 感谢@Mark Rotteveel 如果我们需要,然后执行授予权限命令,否则不需要授予权限。
    猜你喜欢
    • 1970-01-01
    • 2016-02-01
    • 2018-05-15
    • 2013-05-07
    • 2020-03-18
    相关资源
    最近更新 更多