当前位置: 首页 > 知识库问答 >
问题:

使用 jdbc(Windows 身份验证模式)从 Java 连接到 sql 服务器

陆正德
2023-03-14

我需要使用jdbc 4.0从java连接到Sql Server 2008。我有一个非常简单的代码:

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
 String connectionUrl = "jdbc:sqlserver://localhost;" +
    "integratedSecurity=true;";
 Connection con = DriverManager.getConnection(connectionUrl);

但我有这个错误:

    Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
    at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
...

我按照这个回答:https://stack overflow . com/a/12524566/1554397

我在库/编译中添加了jdbc4.jar

SQL 服务器浏览器窗口服务正在运行。

在SQL服务器网络配置中,我选择了在TCP/IP属性上启用。

我将TCP地址设置为1433。

在运行时,VM Options I put-DJ ava . library . path =我的sqljdbc_auth.dll的路径,并复制到JDk的bin sqljdbc_auth.dll中。

我该怎么办?

编辑:当写入cmd telnetlocalhost1433时,我得到“无法打开与主机的连接,在端口1433上”

共有1个答案

吕亮
2023-03-14

如果使用窗口身份验证,您可以执行以下操作:

String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB;integratedSecurity=true";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(url);

然后将路径添加到sqljdbc_ auth。dll作为VM参数(您需要构建路径中的sqljdbc4.jar)。

请看这里的一个简短的分步指南,它展示了如何从Java连接到SQL服务器,如果您需要更多详细信息。希望它能有所帮助!

 类似资料:
  • 尝试通过Windows身份验证从Linux机器上运行的Java应用程序连接到MS SQL服务器。连接字符串: jdbc:sqlserver://192.168.1.50\SQLEXPRESS:1433;DatabaseName=MyData;integratedSecurity=true;authenticationScheme=JavaKerberos 出现连接错误: 如何理解此错误以及如何修复

  • 我有一个Java servlet运行在Tomcat上,它用JDBC连接到SQL Server。它在Windows Server2008上工作得很好。然而,当我今天用相同的配置文件将应用程序部署到另一个Windows Server2012时,我遇到了以下异常: 严重:检测到无效连接。正在更新数据库连接。sqlNestedException:无法创建PoolableConnectionFactory(

  • 我需要使用 JDBC 连接到使用 Windows 身份验证的 SQL Server,其中我提供了连接字符串中的用户名和密码。这可以通过Windows身份验证实现吗? 我已经用JTDS和msql-jdbc尝试过这个,但无法让它工作。 我已经尝试了用户名和域的各种组合,但通常得到这样的东西: 019-01-18 14:15:31错误com.pts.demo.service.JdbcService-用户

  • 问题内容: sqlalchemy是Python的数据库连接模块,默认情况下使用SQL身份验证(数据库定义的用户帐户)。如果要使用Windows(域或本地)凭据对SQL Server进行身份验证,则必须更改连接字符串。 默认情况下,按照sqlalchemy的定义,连接到SQL Server的连接字符串如下: 如果使用您的Windows凭据使用,则会引发类似于以下的错误: 在此错误消息中,代码1845

  • 问题内容: 是否可以做类似的事情: 在JAVA中类似于MongoVUE或其他基于SQL的数据库的身份验证方法。 在那里,身份验证是在连接数据库实例期间完成的。 我在MongoClient Java文档中看不到适当的实例方法 而在这样的认证(可选)官方文档 不符合我的目标,因为它需要更改应用程序中所有现在不使用身份验证的现有查询方法。 使用Java驱动程序对MongoDB进行身份验证的方式完全符合我