Remarque: j'ai évidemment changé les noms de serveur et les adresses IP en noms fictifs.
Voici ce qui se passe. J'ai un serveur, que j'appelle MYSERVER
, exécutant Microsoft SQL Server Express 2005. Sur ce serveur lui-même, j'ai une connexion ODBC configurée pointant sur lui-même, et qui fonctionne déjà parfaitement. Je me connecte à l'aide de l'authentification SQL Server (et non de l'authentification Windows), et il est configuré comme ceci:
Comme je l'ai dit, celui-là fonctionne. Mais ensuite, j'ai un autre ordinateur qui est sur un domaine totalement différent / pas sur l'intranet, qui doit accéder à ce même SQL Server hébergé sur MYSERVER. Parce que c'est sur un domaine différent, il ne reconnaît pas le nom "MYSERVER"; Je dois le pointer vers l'adresse IP de MYSERVER, qui sera, disons, 123.456.789.012. Mais la connexion ODBC ne semble pas fonctionner là-bas. J'ai essayé de le configurer comme ceci:
Ça ne marche pas. Lorsque je mets le nom d'utilisateur et le mot de passe et que j'appuie sur Suivant, il se bloque pendant 10 à 20 secondes, puis revient finalement avec l'erreur suivante:
Connection failed:
SQLState: '01000'
SQL Server Error: 1326
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.
Si j'essaie la même chose, mais que je change le "serveur" de 123.456.789.012\SQLEXPRESS
tout simplement ancien 123.456.789.012
, j'obtiens une erreur différente:
Connection failed:
SQLState: '01000'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Invalid Instance()).
Connection failed:
SQLState: '08001'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection.
Maintenant je sais à quoi tu penses. Vous pensez peut-être, "duh, vous n'avez probablement pas ouvert le pare-feu pour le port 1433, factice." Sauf que je l'ai fait, et je l'ai vérifié, car je peux exécuter avec succès :
telnet 123.456.789.012 1433
... à partir de la ligne de commande tout ce que je veux. Je ne sais donc pas quoi faire. Je sais que SQL Server existe, fonctionne et qu'une connexion ODBC peut être configurée correctement; Je ne suis tout simplement pas sûr de ce que je me suis trompé dans mes paramètres de connexion qui génère ces erreurs. Sur la base de la dernière erreur que j'ai répertoriée, il semblerait qu'il puisse se connecter au serveur, mais ne peut tout simplement pas trouver l'instance (car je n'en ai pas spécifié une à ce moment-là). Cela signifie-t-il que j'ai juste besoin d'utiliser une syntaxe différente pour spécifier l'IP avec un nom d'instance? Que fais-je? Merci d'avance.
la source
Avez-vous activé le service SQL Server Browser selon Comment configurer SQL Server 2005 pour autoriser les connexions à distance ?:
la source
Ce fil a corrigé le même message d'erreur pour moi lorsque j'utilise Access pour me connecter à un serveur MSSQL 2008. MSSQL 2005 et versions antérieures ont bien fonctionné en utilisant simplement le nom de l'ordinateur dans la chaîne de connexion, mais j'ai dû passer à la chaîne de connexion dans Access au formulaire complet lorsque l'instance a été mise à niveau vers 2008:
servername\instancename,portnumber
la source
J'ai eu ce même problème et j'ai réussi à le résoudre en changeant également le pilote SQL en pilote SQL Native Client. C'était bizarre, car dans mon cas, cela fonctionnait bien depuis des années, puis cessait de fonctionner. Je soupçonne que c'est quelque chose dans le sens où le pilote est corrompu, peut-être qu'une réinstallation de MDAC pourrait aider, mais pour le moment, je suis heureux que cela fonctionne du tout!
la source
Reconnaîtrait-il le nom du serveur s'il était pleinement qualifié? Si c'était MYSERVER.domain.com? Nous avons dû le faire avec SQL Server lors de la connexion à partir d'un autre domaine. Si vous pouvez obtenir la connexion DSN du système ODBC lorsque vous testez la source de données, vous progressez. S'il ne se connecte pas dans la configuration ODBC, vous devez d'abord le corriger.
la source
MYSERVER.domain.com\SQLEXPRESS
etMYSERVER.domain.com
, mais ces deux m'ont donné les mêmes erreurs que celles que j'ai énumérées ci-dessus, respectivement.Utilisez-vous des canaux nommés ou TCP sur la connexion ODBC qui fonctionne? TCP est-il activé?
la source
Assurez-vous que les connexions TCP à distance sont activées pour le serveur SQL.
la source
Juste un tir sauvage ici, mais que se passe-t-il si vous mettez une double barre oblique inverse avant le nom du serveur ou l'adresse IP? Il me semble que c'est normalement requis pour la plupart des autres connexions Windows / Microsoft.
la source
J'ai eu un problème similaire. Dans mon cas, un autre sw configure le paramètre ODBC donc je ne peux pas changer le pilote. J'ai résolu mon cas comme ceci:
Puis cela a commencé à fonctionner. Système d'exploitation client: pilote Win7 x64: sqlsrv32.dll
la source
Pour ce que ça vaut, j'ai commencé à obtenir cette erreur sur une connexion qui fonctionnait auparavant. Il s'est avéré que le service MSSQL $ SQLEXPRESS s'était en quelque sorte arrêté. Le redémarrer a résolu le problème.
la source
J'ai également eu ce problème, et c'était aussi simple que cela: le serveur répertorié comme serveur DNS principal pour ce serveur a été supprimé, et l'application n'a plus été en mesure de résoudre correctement le nom du serveur SQL sur le réseau. Tout a immédiatement recommencé à fonctionner lorsque j'ai corrigé le serveur DNS local pour qu'il fonctionne.
la source