Java:Face无法创建PoolableConnectionFactory(用户'root'@'localhost'拒绝访问(使用密码:YES))异常

时间:2014-04-11 19:46:39

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

我正在尝试使用Spring的Apache DBCP连接池技术,而我的数据库是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))

对于解决此异常,我已经谷歌了,并找到答案:

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

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

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

1 个答案:

答案 0 :(得分:2)

您是否注意到错误消息中的额外空格:

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

删除空格,它可能会有效。