无法用java连接到sql server

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法用java连接到sql server相关的知识,希望对你有一定的参考价值。

我正在尝试使用Java和Microsoft SQL Server连接到本地sql服务器。我正在使用sql server auth。

这是代码:

import java.sql.*;


public class Main {
    public static void main(String[] args)  {

        String userName ="testlogin2";
        String password ="pass";

        String url ="jdbc:sqlserver://localhost/LabNoteMap;integratedSecurity=true;"; //LabNoteMap beeing target db
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Connection conn = DriverManager.getConnection(url, userName, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        System.out.println("end");
    }
}

和堆栈跟踪:

"C:Program FilesJavajdk-9injava" "-javaagent:C:Program FilesJetBrainsIntelliJ IDEA 2017.2.5libidea_rt.jar=63510:C:Program FilesJetBrainsIntelliJ IDEA 2017.2.5in" -Dfile.encoding=UTF-8 -classpath C:UsersDeusIdeaProjects	estmysqloutproduction	estMYSQL;C:UsersDeusDesktopjdbcsqljdbc_6.0enujre8sqljdbc42.jar Main
end
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost/LabNoteMap, port 1433 has failed. Error: "localhost/LabNoteMap. 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:191)
    at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:242)
    at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2369)
    at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:551)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1963)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:678)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229)
    at Main.main(Main.java:13)

Process finished with exit code 0

还有一些ss:

enter image description here

enter image description here

另请注意,在Sql server配置中,启用了tcp / ip,并将端口设置为1433。

我想可能是防火墙?但不知道如何检查它,或者其他什么?

答案

你的连接字符串是错误的。你应该改变它

String url ="jdbc:sqlserver://localhost/LabNoteMap;integratedSecurity=true;";

String url ="jdbc:sqlserver://localhost;databaseName=LabNoteMap;integratedSecurity=true;";

您没有定位要建立连接的数据库。

另一答案
private static String url="jdbc:sqlserver://localhost:1433;DatabaseName = students";

我正在使用msbase.jar和mssqlserver.jar以及msutil.jar,也许你使用了错误的jar或你的url是错的(DatabaseName =?)

以上是关于无法用java连接到sql server的主要内容,如果未能解决你的问题,请参考以下文章

由于登录失败错误,无法连接到 SQL Server 数据库 [重复]

我的sql server 2008不能登录,用windows和sa都无法登录 标题: 连接到服务器 ---------------------------

连接SQL2005出现SQL Server 无法连接到服务器 提示 服务器:消息11,级别16,状态1 怎么解决啊

我无法使用带有 Android Studio 的 JDBC 连接到 SQL Server Express

无法从 PHP 连接到 SQL Server

无法从 Docker 容器连接到外部 SQL Server