2011-04-02 5 views
0

J'ai cette erreur/exception-java à la connectivité serveur sql exception

SQL Exception: com.microsoft.sqlserver.jdbc.SQLServerException: La connexion TCP/IP à l'hôte localhost, port 1433 a échoué. Erreur: "délai d'attente de connexion.Vérifiez les propriétés de connexion, vérifiez qu'une instance de SQL Server s'exécute sur l'hôte et accepte les connexions TCP/IP sur le port, et qu'aucun pare-feu ne bloque les connexions TCP au port.".

et mon code est-

try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     String connectionUrl = "jdbc:sqlserver://localhost:1433"; 
     Connection con = DriverManager.getConnection(connectionUrl,"",""); 
     System.out.println("ok"); 
     } catch (SQLException e) { 
      System.out.println("SQL Exception: "+ e.toString()); 
     } 
catch (ClassNotFoundException cE) { 
      System.out.println("Class Not Found Exception: "+ cE.toString()); 
     } 

comment puis-je sovle il, s'il vous plaît aidez-moi.

Répondre

0

Il vous dit qu'il ne peut pas se connecter.

Vérifiez que le serveur sql est disponible sur votre ordinateur local sur ce port.

Vérifiez que le serveur sql accepte les connexions avec le nom et le mot de passe vierges que vous fournissez dans votre appel getConnection().

Vérifiez que votre URL jdbc est correcte, ils sont parfois spécifiques au fabricant/au pilote.

0

L'erreur signifie simplement que java n'a pas pu se connecter à votre base de données. La base de données ne fonctionne pas ou votre pare-feu bloque les connexions. Si vous êtes sûr que votre serveur de base de données est actif sur votre hôte local, essayez de désactiver votre pare-feu Windows.

2

Cela pourrait signifier presque tout - en fait, il était impossible de se connecter au port 1433 sur localhost. Peut-être un problème de réseau, pourrait être que la base de données ne démarre pas, pourrait être qu'il est en cours d'exécution, mais pas lié au port 1433.

Dans une pincée, vous pouvez toujours ouvrir un shell et exécutez

telnet localhost 1433 

pour voir s'il est possible d'établir une connexion.

0

permet de regarder quelques-unes des possibilités:

  • Le serveur de base de données n'écoute pas sur localhost: 1433: vous auriez probablement obtenir une « connexion refusée » plutôt qu'une « connexion a expiré »

  • Le serveur de base de données est catatonique (c'est-à-dire dans un état où il ne répond pas aux requêtes): vous pouvez obtenir une "connexion expirée". Le serveur de base de données est massivement surchargé: vous pouvez obtenir une "connexion expirée", mais vous remarquerez probablement que la machine était très lente. Le pare-feu logiciel local est configuré pour bloquer toutes les demandes au port 1433: vous pouvez obtenir soit "connexion refusée" ou "connexion expirée" ... soit une autre réponse. L'interface de bouclage (pour IP 127.0.0.x) n'est pas configurée: vous avez plus de chances d'obtenir "aucune route vers l'hôte" ou "pas de route vers le réseau".

  • L'entrée DNS pour localhost est mal configurée (c.-à-d.localhost ne se résout pas à 127.0.0.x) - beaucoup de choses peuvent arriver ... selon la façon dont il est mal configuré.

Voici quelques choses que vous pourriez faire pour diagnostiquer le problème ... en fonction de votre système:

  • Regardez les réseaux configurés à l'aide ipconfig ou ifconfig.

  • Regardez «/etc/hosts » pour vérifier l'entrée pour localhost

  • Essayez de vous connecter au service à l'aide telnet -p 1433

  • Utilisez « ps » ou le gestionnaire de tâches pour voir quels sont les processus fonctionnement.

  • Vérifiez les configs de pare-feu local pour veiller à ce que 1433 est ouvert pour (au moins) TCP à partir de l'adresse IP configurée localhost (probablement 127.0.0.1).

1

J'ai eu cette erreur. Je l'ai résolu en allant dans le Gestionnaire de configuration SQL Server.

Sous SQL Server 2005 Configuration -> Protocols pour SQLEXPRESS. Regardez l'onglet IP Address du Properties du TCP/IP Protocol.

Tout en bas de la liste des protocoles (sous IPALL), le champ Port TCP était vide. Je mets 1433 là, sauvé, remis en marche le service SQL et il a très bien fonctionné :)

0

J'ai eu un problème similaire à cela, et résolu en ajoutant la ligne:

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

Le problème était-il utilisé IPv6 au lieu de IPv4 pour accéder à l'hôte db (je l'ai utilisé pour une base de données sur un hôte distant, pas localhost). J'espère que ça aide.

Questions connexes