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

sql server的等效jdbc连接字符串

王楚青
2023-03-14

我目前正在使用以下连接字符串连接到数据库(数据库与ServerIP在同一台服务器上):

String constr = "Data Source=ServerIP,1433;Network Library=DBMSSOCN;Initial 
Catalog=dbName;User ID=dbUserID;Password=dbUserPassword";

这在asp中使用时连接良好。网(我已经手动创建了dbUserId,并从sql server management studio为其分配了dbUserPassword。dbUserId是数据库“dbName”的所有者)

我在另一台电脑上有一个java swing应用程序,需要连接到同一个数据库。我正在使用sqljdbc4。驻留在C中的jar:。我的类路径包含条目“;C:\sqljdbc4.jar”。为了实现连接,我使用了以下几行代码:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

 String url = "jdbc:sqlserver://ServerIP:1433;databaseName=dbName";

   String user = "dbUserID";
   String pass = "dbUserPassword";
   Connection connection = DriverManager.getConnection(url, user, pass); 

但是,我在“Connection Connection=DriverManager.getConnection(url,user,pass);”行中遇到了一个异常:与主机“ServerIP”端口1433的TCP/IP连接失败。错误:“连接超时。验证连接属性。确保SQL Server实例正在主机上运行,并在端口接受TCP/IP连接。确保到端口的TCP连接没有被防火墙阻止。"

我已经检查了windows防火墙是否关闭(它还为家庭和公共网络上的MSSQLSERVER端口1433 tcp添加了例外)。在sql server management studio中,我为sql server和sql server express启用了TCP/IP。

有人能告诉我连接字符串或sql服务器连接设置有什么问题吗?

共有2个答案

周鸿运
2023-03-14

你试过jtds吗。jar。我正在使用下面的它是为我工作。

  public static String jdbc_url="jdbc:jtds:sqlserver://yourServerIp:1433/dbName";
  public static String jdbc_username="sa"; 
  public static  String jdbc_password="prabhakar";
  public static String jdbc_driver="net.sourceforge.jtds.jdbc.Driver"; 
  Class.forName(jdbc_driver);
  Connection cn=null;    
  cn=DriverManager.getConnection(jdbc_url, jdbc_username,jdbc_password);
佟高澹
2023-03-14

最后找出了根本原因。问题不在于java连接字符串、IP地址或端口。这是与网络。serverIP和运行java应用程序的机器的IP位于不同的子网上。因此,这两个子网之间的切换机制阻塞了端口1433上的流量。因此,我在运行java应用程序的pc上超时,而asp。net web应用程序运行良好(流量没有穿过连接子网络的交换机)

我希望这对将来试图实现类似目标的人有用。

 类似资料:
  • 问题内容: 我想查询从左表中的Id和联接表中的描述在1行上输出的ID。 架构: 示例数据: 因此,我希望输出为: 问题答案: SELECT p.ID PersonID, STUFF( (SELECT ‘;’ + b.description FROM personrole a INNER JOIN role b ON a.roleid = b.id WHERE a.personid = p.id F

  • 问题内容: 我正在将Visual Studio 2017 for Mac与dotnet Core和EF Core一起使用。在Docker容器中设置mssql映像后,我试图添加连接字符串,但抛出连接错误。我尝试使用不同的选项(例如ip地址,容器名称,主机名等)作为服务器名称,但是它们都不起作用。 带有容器名称 主机名: 通过在终端中使用本地主机进行连接时,其成功连接 但是在运行应用程序时,连接失败。

  • 我有一个来自ASP.NET的连接字符串,我必须在我的Java应用程序中使用它,然而,我似乎无法弄清楚它为什么不工作。 这是我得到的错误:cannot ;建立 ;连接 ;到 ;jdbc:sqlserver://localhost:1433;databaseName=mydatabase;“ 使用 ;com.microsoft.sqlserver.jdbc.sqlserverdriver ;( ;连接

  • 问题内容: 以下作品: 以下失败: 上面的错误消息是: DBAPIError:(错误)(“ 08001”,“ [08001] [unixODBC] [FreeTDS] [SQL Server]无法连接到数据源(0)(SQLDriverConnectW)”)无无 有人能指出我正确的方向吗?有没有一种方法可以简单地告诉sqlalchemy将特定的连接字符串传递给pyodbc? 请注意: 我想保留此DS

  • 理想情况下,我希望使用实例id、项目名称、数据库名称、一个服务帐户电子邮件和一个p12文件的组合,但对其他身份验证选项是开放的。 编辑:在尝试策略时,我生成了这个日志文件,以备不时之需https://gist.github.com/aryeh-looker/e6b1b1617d301f0a247463216c96535d

  • 官方的SQLServer数据库的JDBC驱动程序 驱动类名:com.microsoft.sqlserver.jdbc.SQLServerDriver URL格式:jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]