2012-02-15 57 views
-4

java.sql.SQLException:網絡錯誤IOException:連接超時:connect at net.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2.java: 410)at net.sourceforge.jtds.jdbc.ConnectionJDBC3。(ConnectionJDBC3.java:50)at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)at java.sql.DriverManager.getConnection(DriverManager。 java:582)在mahesh.MyFrame.connectToServer(MyFrame.java:50)上的java.sql.DriverManager.getConnection(DriverManager.java:185)在mahesh.DataCount.main(DataCount.java:18)導致:java。 net.ConnectException:連接超時:在java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)處的java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)處的java.net.PlainSocketImpl.socketConnect(Native Method)處的連接)在java.net.PlainSock et.mpl.connect(PlainSocketImpl.java:182)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:307)at net.sourceforge.jtds.jdbc.SharedSocket。(SharedSocket.java:257)at net.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2。 java:311)... 6更多無法從Sql Server 2005獲取數據(連接超時例外)

任何人都可以幫助我擺脫此異常嗎?

這裏是我的Java代碼

**的Class.forName( 「net.sourceforge.jtds.jdbc.Driver」);

連接連接=的DriverManager.getConnection( 「JDBC:JTDS:SQLSERVER:// mindmill:1433 /僱用」, 「馬赫什」, 「馬赫什」); **

+0

格式化問題儘快在stakoverflow格式... – 2012-02-15 04:12:25

+1

http://stackoverflow.com/search?q=java.sql.SQLException%3A+Network+error+IOException%3A+Connection+timed+out%3A+connect + at + net.sourceforge.jtds.jdbc.ConnectionJDBC2 – 2012-02-15 04:13:23

+0

之前我有一些jtds驅動程序的麻煩,所以請您發佈您的JDBC URL?也許你沒有正確設置Sql Server實例,關閉了實例或爲Sql Server實例禁用了TCP/IP客戶端協議。 – 2012-02-15 04:23:43

回答

0

作爲jTDS FAQ狀態,URL必須在窗體中

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

從連接Infering:

  • mindmill是your_computer /服務器的名稱,其中SQL Server 2005是英斯塔LLED。
  • 是(默認)端口與SQL Server連接2005
  • 聘請是數據庫名稱。
  • mahesh是您的用戶和密碼連接到服務器。

從這裏開始,您必須設置其他sql連接參數。我會後你我的代碼:

1 hello world 
2 goodbye! 

這裏的教訓:

  1. 從SQL Server 2005和上,則必須設置名稱

    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(); 
         } 
        } 
    } 
    

    我的程序的輸出(如上例)。

  2. 在SQL Server中,您必須檢查您的TCP/IP協議是否已啓用,並且通訊端口是1433(最後一個默認設置,請檢查它)。您可以在SQL Server 2005配置工具中啓用/禁用SQL Server配置管理。

Checking TCP/IP protocol for SQL Server 2005

任何其他問題,請告訴我。

編輯:

最好的情況是,如果你已經嘗試過與您的PC作爲服務器這方面,我的意思是你的電腦必須安裝SQL Server 2005,安裝NetBeans和項目已經設置好的運行起來(作爲連接數據庫的概念證明)。

即使你還沒有做的步驟之前,有你應該嘗試連接遠程服務器之前已經回答一組問題:

  1. 你有你的電腦和主機之間的通信檢查?在你的情況下,提示一個命令行(開始/運行...鍵入'CMD'和輸入)並輸入命令「ping mindmill」,檢查你的服務器的主機名。
  2. 您是否在您的電腦中安裝了Sql Server Management Studio並連接到您的服務器?你的服務器允許遠程連接嗎? Help 1
  3. 用戶是否有足夠的權限連接數據庫? Help 2

在您回答完此問題之前,請讓我知道更多問題。

+0

我應該在我的操作系統中創建任何DNS。只需要將jtds.jar放置在netbeans.my的項目庫文件夾中就可以訪問表一個服務器數據庫,爲此,我遵循以上程序。請建議我我不知道數據庫和服務器數據庫訪問 – mahesh 2012-02-15 11:40:39

+0

您運行項目的PC必須與您的服務器連接,您可以使用** ping * *命令在控制檯例如ping 192.168.1.11(從你的服務器上取代ip)。如果服務器響應正常,請嘗試使用Sql Server Management Studio(適用於Windows的Express Edition [此處])連接Sql Server(http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=C243A5AE -4BD1-4E3D-94B8-5A0F62BF7796&displaylang = ES))。另一個連接問題的問題被處理[在這裏](http://stackoverflow.com/questions/2118466/connection-error-in-sql-server-2005)。通過wat你的操作系統是什麼? – 2012-02-15 14:10:20

+0

@mahesh對不起,我沒有把你的名字在我的評論中,現在你可以檢查你的收件箱:) – 2012-02-15 14:23:55