c3p0访问被拒绝用户'root'@'localhost'(使用密码是)

时间:2016-02-16 09:50:05

标签: java mysql database

使用时,我似乎无法使用c3p0连接数据库:

DriverManager.getConnection("jdbc:mysql://localhost:3306/rdmssql", "root", "");

没有抛出任何异常。 但是,当我尝试使用c3p0连接池进行连接时:

  private ComboPooledDataSource connectionPool;

  ...other code

  /**
   * 
   * @return
   * @throws Exception 
   */
  public Connection getConnection() throws Exception {
    return getInstance().connectionPool.getConnection();
  }  

/**
   * 
   * @param driver
   * @param hostname
   * @param databaseName
   * @param username
   * @param pwd
   * @throws Exception
   * @throws PropertyVetoException 
   */
  private void setConnectionDetails(String driver, String hostname, String databaseName, String username, String pwd) throws Exception, PropertyVetoException {
    connectionPool.setDriverClass("com.mysql.jdbc.Driver");
    connectionPool.setJdbcUrl(driver + "://" + hostname + "/" + databaseName);
    connectionPool.setUser(username);
    connectionPool.setPassword(pwd);

    // the settings below are optional -- c3p0 can work with defaults
    // will work on this in the future
    connectionPool.setInitialPoolSize(5);
    connectionPool.setMinPoolSize(5);
    connectionPool.setAcquireIncrement(5);
    connectionPool.setMaxPoolSize(20);
    connectionPool.setMaxStatements(180);
  }

java.sql.SQLException:拒绝用户访问:'root@127.0.0.1'(使用密码:YES)。我不确定我是否错过了我的c3p0的一些配置。

1 个答案:

答案 0 :(得分:0)

例外说('使用密码':是)。 驱动程序管理器版本不使用密码(并且成功),而连接池版本DOES(并且失败)。 检查传递给pwd的参数值(并使其发送“”)。