我目前正在使用以下连接字符串连接到数据库(数据库与 ServerIP 在同一台服务器上):
String constr = "Data Source=ServerIP,1433;Network Library=DBMSSOCN;Initial
Catalog=dbName;User ID=dbUserID;Password=dbUserPassword";
这在 asp.net 中使用时连接良好。(我手动创建了 dbUserId 并从 sql server management studio 为其分配了 dbUserPassword。dbUserId 是数据库“dbName”的所有者)
我在另一台电脑上有一个 java swing 应用程序,我需要连接到同一个数据库。我正在使用位于 C: 中的 sqljdbc4.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 server 连接设置可能有什么问题?