连接SQL SERVER 2008 R2显示超时间已到.在操作完成之前超时间已过或服务器未响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接SQL SERVER 2008 R2显示超时间已到.在操作完成之前超时间已过或服务器未响应相关的知识,希望对你有一定的参考价值。

参考技术A 在数据库链接没有问题的前提下,这个属于数据库请求超时,关键点是你的sql语句,断点跟踪把最终要执行的sql语句复制下来在sql里面执行一下试试,本人也碰到的统样的问题,两个视图和一个表联合查询,在sqlserver2008里面执行需要50多秒才得到结果,建议优化一下sql语句,提高sql语句执行的效率。追问

求具体操作方法

无法从 Sql Server 2005 获取数据(连接超时异常)

【中文标题】无法从 Sql Server 2005 获取数据(连接超时异常)【英文标题】:Unable to get data from Sql Server 2005 (connection time out exception) 【发布时间】:2012-03-06 11:06:34 【问题描述】:

java.sql.SQLException: 网络错误 IOException: Connection timed out: connect at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:410) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3. java:50) 在 net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) 在 java.sql.DriverManager.getConnection(DriverManager.java:582) 在 java.sql.DriverManager.getConnection(DriverManager.java :185) 在 mahesh.MyFrame.connectToServer(MyFrame.java:50) 在 mahesh.DataCount.main(DataCount.java:18) 原因:java.net.ConnectException:连接超时:在 java.net.PlainSocketImpl 连接。 socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 在 java.net.Socket.connect(Socket.java:519) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 net。 sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:307) 在 net.sourceforge.jtds.jdbc.SharedSocket.(SharedSocket.java:257) 在 net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:第311章……还有6个

谁能帮我摆脱这个异常?

这是我的java代码

**Class.forName("net.sourceforge.jtds.jdbc.Driver");

连接连接 = DriverManager.getConnection("jdbc:jtds:sqlserver://mindmill:1433/employ","mahesh","mahesh");**

【问题讨论】:

尽快以 stakoverflow 格式格式化问题... ***.com/… 我之前在使用 jtds 驱动程序时遇到了一些问题,请问您可以发布您的 JDBC URL 吗?可能你没有正确设置Sql Server实例,关闭了实例或者为Sql Server实例禁用了TCP/IP客户端协议。 我将 jtds.jar 放在我的 netbeans 项目库文件夹中 【参考方案1】:

正如jTDS FAQ 所述,URL 必须采用以下格式

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

从你的连接推断:

mindmill 是安装 Sql Server 2005 的 your_computer/server 的名称。 1433 是连接 Sql Server 2005 的(默认)端口。 employ 是数据库名称。 ma​​hesh 是您连接服务器的用户名和密码。

从这里开始,您必须设置其他 sql 连接参数。我会把我的代码发给你:

package edu.jtds.main;

import java.sql.*;

public class SqlServerConnTest 

    Connection conn;

    public void connect() 
        try 
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            String dbName = "TestDB";
            String user = "cajeroUpz";
            String password = "cajero";
            //the name of my SQL SERVER 2005 instance
            String SqlServerInstance = "instance=SQL2005";
            String url = "jdbc:jtds:sqlserver://localhost:1433";
            url = url + "/" + dbName;
            url = url + ";" + SqlServerInstance;
            conn = DriverManager.getConnection(url, user, password);
         catch (Exception e) 
            e.printStackTrace();
        
    

    public Connection getConnection() 
        return this.conn;
    

    public static void main(String[] args) 
        SqlServerConnTest oSqlServerConnTest = new SqlServerConnTest();
        oSqlServerConnTest.connect();
        String sql = "SELECT * FROM TEST_TABLE";
        Connection conn = null;
        Statement stat = null;
        ResultSet rs = null;
        try 
            conn = oSqlServerConnTest.getConnection(); 
            stat = conn.createStatement();
            rs = stat.executeQuery(sql);
            while(rs.next()) 
                System.out.println(String.format("%d %s", 
                    rs.getInt(1), rs.getString(2)));
            
            rs.close();
            stat.close();
            conn.close();
         catch (Exception e) 
            e.printStackTrace();
        
    

我的程序的输出:

1 hello world
2 goodbye!

这里的教训:

    从 SQL Server 2005 及更高版本开始,您必须设置实例的名称(如上例)。 在 SQL Server 中,你必须检查你的 TCP/IP 协议是否启用,并且通讯端口是 1433(这最后一个是默认设置的,检查一下就可以了)。您可以使用 SQL Server 2005 配置工具中的 SQL Server 配置管理启用/禁用。

还有什么问题,直接告诉我吧。

编辑:

最好的情况是,如果您已经尝试将您的电脑作为服务器连接,我的意思是您的电脑必须安装 Sql Server 2005,安装 NetBeans 并且项目已经设置并运行(作为概念证明连接数据库)。

即使您之前没有执行此步骤,在尝试连接远程服务器之前,您也应该回答一系列问题:

    您是否检查过您的电脑和主机之间的通信?在您的情况下,提示命令行(开始/运行...键入“cmd”并回车)并输入命令“ping mindmill”,检查服务器的主机名。 您是否在您的 PC 中安装了 Sql Server Management Studio 并连接到您的服务器?你的服务器允许远程连接吗? Help 1 用户是否有足够的权限连接数据库? Help 2

在您之前回答过这些问题之后再告诉我任何问题。

【讨论】:

我应该在我的操作系统中创建任何 DNS。我所做的只是将 jtds.jar 放在我的 netbeans 项目库文件夹中。我的项目方案是从服务器数据库访问一个表,为此我正在遵循上述程序。请建议我我不知道数据库和服务器数据库访问 您运行项目的PC必须与您的服务器连接,您可以在控制台上使用ping命令进行尝试,例如ping 192.168.1.11(从您的服务器替换 ip)。如果服务器响应正常,请尝试将 Sql Server 与 Sql Server Management Studio (Express Edition for Windows here) 连接。另一个连接问题问题已处理here。请问您的操作系统是什么? @mahesh 抱歉,我没有把你的名字放在我的评论中,现在你可以查看你的收件箱了 :) 我收到以下异常::::::::java.sql.SQLException: Network error IOException: Connection timed out: connect

以上是关于连接SQL SERVER 2008 R2显示超时间已到.在操作完成之前超时间已过或服务器未响应的主要内容,如果未能解决你的问题,请参考以下文章

安装SQL Server 2008 R2 时提示“服务器没有及时响应或控制请求”怎么解决?

在 SQL Server 2008 R2 中将 varchar 转换为时间戳

SQL Server 2008/2014无法远程连接的可能原因之一

SQL Server Management Studio 2008 R2 中的查询分析器在哪里?

Win 10 + IIS + PHP v7.1.7 + SQL Server 2008 R2如何让SQL Server连接正常工作?

Java / SQL Server 2008 R2 Express 连接问题