我无法连接到 SQL Server,出现以下错误。
异常 com.microsoft.sqlserver.jdbc.SQLServerException: TCP/IP 连接 到主机 SSALES,端口 1433 发生故障。错误:“驱动程序收到一个 unexpe cted 登录前响应。验证连接属性并检查安装是否正确 SQL Server 正在主机上运行并接受 TCP/IP 连接 电子端口。该驱动程序只能与 SQL Server 2000 或更高版本一起使用。”。
我本地的环境:-
Java 5, SQL Server企业管理器版本8,RunApp.java
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = java.sql.DriverManager.getConnection("jdbc:sqlserver://abc;databaseName={db};user=name;password=passworf;");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("SELECT * FROM testdb.testtabel where active = 'a'");
通过cmd运行:
set path="C:\Program Files\Java\jdk5\bin";
javac -classpath "D:\Web Development\ABC\lib\mail-1.4.3.jar;D:\Web Development\ABC\lib\json-simple.jar;D:\Web Development\ABC\lib\sqljdbc.jar;" com\test\RunApp.java
java -classpath "D:\Web Development\ABC\lib\mail-1.4.3.jar;D:\Web Development\ABC\lib\json-simple.jar;D:\Web Development\ABC\lib\sqljdbc.jar;" com.test.RunApp
最佳答案
您的网址错误(请参阅 Building the Connection URL ),应该是(注意使用转义反斜杠而不是正斜杠):
"jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName={db};user=MyUserName;password=MyPassword;"
还要确保将 {db}
替换为数据库的实际名称。
您正在尝试通过实例名称进行连接,并且对错误消息进行一些谷歌搜索表明,如果实例名称错误或 SQL Server Browser 服务未运行,则可能会发生此错误。因此您需要启用 SQL Server Browser 服务(默认情况下禁用)。
否则,您需要从 URL 中删除实例名称,并在 JDBC URL 中指定正确的端口号(通常为 1433,但这可能取决于配置:仔细检查)。
关于java - 连接到 SQL Server 导致错误 "The driver received an unexpected pre-login response",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41609474/