【问题标题】:Could not connect to the database Network error IOException: Connection refused: connect无法连接到数据库网络错误IOException:连接被拒绝:连接
【发布时间】:2013-08-03 23:18:46
【问题描述】:

我正在我的机器上运行 SQL Server Express 10.50.4000.0。 我已启用 TCP/IP 并确保端口设置为 1433。 我在防火墙中为 1433 添加了一个例外。 服务器服务正在运行。 我已经尝试了 localhost 和计算机名,并且都给出了相同的错误。 当我尝试 localhost\SQLEXPRESS 或 [USER-PC]\SQLEXPRESS 时,我收到一条错误消息,说它找不到数据库。

String driverName = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driverName);

String serverName = "localhost";
String instanceName = "ALLEN-PC\\SQLEXPRESS";
String serverPort = "1433";
String database  = serverName +":" + serverPort+"/"+instanceName;
String url = "jdbc:jtds:sqlserver://" + database;
String username = "sa";
String password = "password";

connection = DriverManager.getConnection(url, username, password);

我收到错误:

Could not connect to the database Network error IOException: Connection refused: connect

没有其他需要调查的上下文。

【问题讨论】:

  • 数据库名称是什么?我认为它可能需要包含在连接字符串中:jdbc:jtds:<server_type>://<server>[:<port>][/<database>]
  • 您是否尝试使用telnet 连接到该端口?
  • telnet 无法建立连接。
  • SQL Server 客户端(或应用程序)和实例是否在您的本地计算机上?如果是这样,防火墙应该不是问题;否则,如果您无法从客户端 telnet 到 SQL 实例,则说明存在防火墙问题。
  • 我也同意凯文的观点。看起来您还没有指定数据库目录。 SQL Server 实例名称可能是 [User-PC]\SQLEXPRESS,因为这是 express 的默认名称。然后你需要告诉它你想连接什么数据库。

标签: java sql-server


【解决方案1】:
  1. 确保您的 SQL Server Browser 服务处于活动状态。
  2. 转到 AllProgram->SQL Server ->配置工具->SQL Server 配置管理器->SQL Server 网络配置-> 选择您的服务器实例并右键单击 TCP/IP,然后转到 IPAddresses。将所有 IP 的端口号更改/放置为 1433。还要确保 IP 地址处于活动状态并已启用。保存并重新启动服务器。

【讨论】:

  • 为上述答案添加了更重要的一步。在“将所有 IP 的端口号更改/放置为 1433”之后,如果默认禁用“TCP/IP”,则手动启用它。然后,重新启动 Sql server 实例并开始使用。快乐编码.. 干杯
【解决方案2】:

localhost:1433 上没有数据库服务器监听

检查 SQL Server Browser 服务是否正在运行

所以也许使用 ip 地址而不是 localhost 会有所帮助。

【讨论】:

  • SQL Server Browser 当前正在运行,用 ip 替换 localhost 似乎没有任何改变。
【解决方案3】:

您的连接字符串需要采用这种格式。在这里找到:http://msdn.microsoft.com/en-us/library/ms378428(v=sql.110).aspx

jdbc:jtds:sqlserver://<yourDBServerIPAddress>\SQLEXPRESS:1433;databaseName=AdventureWorks;user=sa;password=*****;

【讨论】:

    【解决方案4】:

    打开配置管理器: 开始 -> Microsoft SQL Server -> 配置工具 -> SQL Server 配置管理器 启用 TCP/IP:从左侧树中选择: SQL Server 网络配置-> SQLEXPRESS 协议-> TCP/IP 右键单击并启用它。 双击 TCP/IP 并单击“IP 地址”选项卡 添加 TCP/IP 端口:将 TCP 端口值输入 1433,然后单击应用 重新启动 SQL Server:从左侧树中,选择: SQL Server Services -> SQL Server (SQLEXPRESS) -> 右键重启。

    【讨论】:

    • 嗨,Sidharthan,正确的格式将大大提高您的答案的可读性和实用性。
    【解决方案5】:

    解决方案 1: 而不是使用 jtds 驱动程序使用 mssql-jdbc-9.4.0.jre8.jar

    替换:

    Class.forName("net.sourceforge.jtds.jdbc.Driver");
    con = DriverManager.getConnection("jdbc:jtds:sqlserver://<IP>:port/<DatabaseName>",userid,password);
    

    与:

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
    DriverManager.getConnection("jdbc:jtds:sqlserver://<IP>:port/<DatabaseName>",userid,password);
    

    解决方案 2:

    在连接字符串中添加ssl=request参数

    con = DriverManager.getConnection("jdbc:jtds:sqlserver://<IP>:port/<DatabaseName>;ssl=request",userid,password);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多