【问题标题】:MS SQL WITH JAVA带有 JAVA 的 MS SQL
【发布时间】:2016-01-17 17:03:48
【问题描述】:

我尝试将我的 sql 数据库连接到 java。 问题是 TCPviewer 中没有显示我的 MsSQL。我使用的是 Express 版本,并且在配置管理器中启用了 TCP IP。 也许有人可以告诉我问题是什么以及如何解决这个问题。 Java 给了我这个代码的这个错误:

import java.sql.*;

public class Test {
    public static void main(String[] args){
        Connection con = null;
        String conUrl = "jdbc:sqlserver://localhost:1433;databaseName=Northwind;user=user; password =password";

        try{
            con = DriverManager.getConnection(conUrl);
        }catch(Exception e) {e.printStackTrace();}
        finally{
            if(con != null) try{con.close();}catch(Exception e){}
        }
    }
}

com.microsoft.sqlserver.jdbc.SQLServerException: Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'localhost', Port 1433. Fehler: 'Connection refused: connect. Überprüfen Sie die Verbindungseigenschaften. Stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird und am Port TCP/IP-Verbindungen akzeptiert. Vergewissern Sie sich, dass am Port keine TCP-Verbindungen durch eine Firewall blockiert werden.'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)

编辑:服务器名可能有问题吗?通常我的服务器名称是 TEST\SQLEXPRESS,但我不能在字符串中输入 TEST SQL\EXPRESS,所以我决定使用 localhost。那是问题吗? ++我使用windows认证可能很重要了解

【问题讨论】:

标签: java sql-server eclipse tcp connect


【解决方案1】:

你是否添加了 JDBC 驱动程序?

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
    Connection conn = DriverManager.getConnection("jdbc:sqlserver://HOSP_SQL1.company.com;user=name;password=abcdefg;database=Test");

如果是这样,我猜这是一个安全问题。你可以通过 telnet 访问此 ip 和端口上的服务器,即

更新 1: 这是与用户和 PW 联系的另一种可能性:

      // the sql server driver string
  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

  // the sql server url
  String url = "jdbc:microsoft:sqlserver://HOST:1433;DatabaseName=DATABASE";

  // get the sql server database connection
  connection = DriverManager.getConnection(url,"THE_USER", "THE_PASSWORD");

更新 2: 您在连接字符串中有一个空格:

user=user; password =password

我不知道java是否有这个问题。

【讨论】:

  • 是的,我添加了.. 尝试了您的版本仍然无法正常工作:S 我猜它的原因是我需要创建一个实例或……只是不知道如何.. 我会尝试找出答案:)
  • 仍然不起作用..我猜它与代码无关.. TCP 视图没有显示 sql server 已连接,所以我没有端口可连接..我不知道如何获取 sql server连接一个端口,我在设置中启用了 TCP IP,将端口设置为 1433,但仍然没有变化..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
相关资源
最近更新 更多