Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用户的MS Sql登录失败_Java_Sql Server_Hikaricp - Fatal编程技术网

Java 用户的MS Sql登录失败

Java 用户的MS Sql登录失败,java,sql-server,hikaricp,Java,Sql Server,Hikaricp,我有一个java应用程序,带有连接MSSql数据库的Hikari连接池。 当我使用我的数据库时,它工作得非常好,但当我想连接到远程数据库时,我得到一个错误:用户登录失败。我在这里看到了一些问题,但没有找到解决办法。我试图更改MSSQL等的端口,但没有成功 错误消息: Caused by: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Login faile

我有一个java应用程序,带有连接MSSql数据库的Hikari连接池。 当我使用我的数据库时,它工作得非常好,但当我想连接到远程数据库时,我得到一个错误:用户登录失败。我在这里看到了一些问题,但没有找到解决办法。我试图更改MSSQL等的端口,但没有成功

错误消息:

    Caused by: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Login failed for user 'user'. ClientConnectionId:a45173d9-e047-49a1-b8d0-e8507ad2a7b9
    at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:544)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:536)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:112)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:72)
    at com.mypackage.DAOConnPool.<clinit>(DAOConnPool.java:33)
    ... 2 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'user'. ClientConnectionId:a45173d9-e047-49a1-b8d0-e8507ad2a7b9
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4290)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3157)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:82)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3121)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2026)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:968)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:78)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:356)
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:199)
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:444)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:515)
    ... 5 more
这是我的连接:

 try (Connection conn = DAOConnPool.getConnection(); Statement statement = conn.createStatement();) {
      statement.executeUpdate(db_statement);
以下是DAOConnPool类:

  public class DAOConnPool {

  private static HikariConfig config = new HikariConfig();
  private static HikariDataSource dataSource;

 static {      

  config.setDataSourceClassName(ConfigurationFile.getProperty("mssql.jdbcdriver"));
  config.setJdbcUrl(ConfigurationFile.getProperty("mssql.connectionstring"));     
  config.setUsername(ConfigurationFile.getProperty("mssql.user"));
  config.setPassword(ConfigurationFile.getProperty("mssql.pass"));
  //config.addDataSourceProperty("cachePrepStmts", "true");
  //config.addDataSourceProperty("prepStmtCacheSize", "250");
  //config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
  dataSource = new HikariDataSource(config);
}

}

public DAOConnPool() {
}

public static Connection getConnection() throws SQLException {
  return dataSource.getConnection();
}

}

我认为您正在尝试使用windows身份验证远程连接到数据库。在这个连接字符串中

integratedSecurity=true
定义您正在通过windows身份验证进行连接。如果你想通过网络连接,你应该给予适当的特权。如果要连接服务器身份验证,则需要从连接字符串中删除该属性

尝试删除:

 config.setDataSourceClassName(ConfigurationFile.getProperty("mssql.jdbcdriver"));

请添加完整的错误消息。问题已编辑,谢谢。我在没有编辑的情况下尝试了,我也收到了错误消息。我正在尝试进行Sql Server身份验证谢谢您的回答!
 config.setDataSourceClassName(ConfigurationFile.getProperty("mssql.jdbcdriver"));