2017-02-14 64 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,乐意帮忙! –