2017-02-14 65 views
0

我正在一個項目中,我需要將Eclipse IDE conenct到SQLServer數據庫。我下載和進口在Eclipse中的.jar SQLJBDC驅動程序文件,並把下面的代碼在我的課:連接SQL服務器2012年 - Eclipse的霓虹燈

`import java.sql.*; 
import java.sql.DriverManager; 

public class connexion { 

// Méthode permettant d'enregistrer des données dans la base de données 
public static void rempli() { 

    String url = "jdbc:sqlserver://localhost:1433;databaseName=Tunnel" ;// le chemin vers le serveur de BD et la base de données 
    String user = "sa"; // Nom d'un utilisateur de la base de données 
    String pass = "*********"; // Son mot de passe 
    Connection cn = null; // Déclaration d'un objet de type connection, il permet d'utiliser une méthode de connexion 
    Statement st = null; // Déclaration d'un objet Statement. il permet d'envoyer des requêtes 
    try { 

       //Etape 1 : Chargement du driver 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
       //Etape 2 : récupération de la connexion 
      cn = DriverManager.getConnection(url, user, pass); 


    } 
    catch (SQLException | ClassNotFoundException e) { 

     e.printStackTrace(); 
    } 
} 
public static void main(String[] args) { 

    rempli(); 
} 
}` 

當我啓動了程序,我有近20秒後如下回答:

com.microsoft.sqlserver.jdbc.SQLServerException: Échec de la connexion TCP/IP à l'hôte localhost, port 1433. Erreur : « Connection refused: connect. Vérifiez les propriétés de connexion. Assurez-vous qu'une instance de SQL Server est en cours d'exécution sur l'hôte et accepte les connexions TCP/IP au port. Vérifiez que les connexions TCP au port ne sont pas bloquées par un pare-feu. ». 
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.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at connexion.rempli(connexion.java:21) 
at connexion.main(connexion.java:32) 

我停用了我的防火牆,授權訪問不同端口上的TPC,我現在不知道該怎麼做。誰能幫我?

謝謝你的幫助!

+0

你有沒有嘗試Telnet來檢查你可以連接到本地端口1433上的數據庫? –

+0

我的法語太糟糕了,無法理解整個錯誤消息,但您是否在SqlServer上啓用了TCP?如果我沒有記錯,TCP默認情況下... – Ben

+0

禁用是的,我檢查了這一切,並在防火牆,但仍然有此錯誤信息...... – Carlito1895

回答

0

如果已經配置了MS SQL服務器偵聽TCP/IP流量,那麼它可能是任何一個原因:

  • 防火牆阻止傳入的連接
  • SQL Server未運行在主機上
  • 已配置的端口是不正確的,即它不是1433

如果你已經驗證了這個問題不屬於上述類別,那麼你可能會嘗試這樣做,以啓用TCP/IP流量的端口1433!

  • 開始 - >所有程序 - > Microsoft SQL Server的2008/2012/2014 - >配置工具
  • 單擊SQL Server配置管理器
  • 展開SQL Server網絡配置 - >協議
  • 啓用TCP/IP右框
  • 雙擊TCP/IP並轉到IP地址選項卡並在TCP端口下添加1433。

這些變化後,你將不得不重新啓動SQL Server Services > SQL Server

如果這些都沒有,那麼幫助你可以考慮加入下面還有:

System.setProperty("java.net.preferIPv4Stack", "true"); 

或者把它作爲一個VM選項:-Djava.net.preferIPv4Stack=true

希望這有助於!

+0

是的,它是:「雙擊TCP/IP和轉到IP地址選項卡並在TCP端口下添加1433「。 – Carlito1895

+0

感謝您的回答 – Carlito1895

+0

@ Carlito1895,樂意幫忙! –