Je n'arrive pas à me connecter à ma base de données depuis un site. Je reçois cette erreur:
Fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server
J'ai essayé d'utiliser l'adresse IP locale pour vous connecter, ainsi qu'une adresse publique. J'ai essayé:
Que puis-je faire ici?
Résoudre ce problème est très facile:
Capture d'écran des étapes:
Et la solution la plus simple: vérifiez si votre slash est de retour ...
J'ai passé environ une heure à essayer de comprendre ce qui n'allait pas avec SERVER/INSTANCENAME lorsque tout était configuré correctement, des tubes nommés, des droits d'accès utilisateur ... et tout à coup, ça m'a frappé, ce n'est pas une barre oblique, mais un barre oblique inverse (\
).
L'horreur, la honte ...
C'est vraiment un processus en trois étapes après l'installation de SQL Server:
Redémarrez le serveur Gestionnaire de configuration SQL -> Services SQL Server -> SQL Server (SQLEXPRESS) -> Cliquez avec le bouton droit de la souris -> Redémarrer
Utilisez les noms de serveur et d’instance appropriés (les deux sont nécessaires!) Généralement, il s’agit de .\SQLEXPRESS, par exemple, voir la capture d’écran de la boîte de dialogue de connexion QueryExpress.
Voilà.
Je venais d'installer SQL SERVER 2012 Developer. Lors de la création de mon premier package SSIS, j'ai reçu cette erreur de canal lorsque j'essayais de créer une tâche de connexion de données dans SQL Server 2012 Data Tools dans la zone du gestionnaire de connexion. J'ai résolu avec l'aide de la poste ci-dessus.
Si vous choisissez une instance nommée et que vous appelez votre instance nommée SSQDatabase1 et que le nom de votre ordinateur est PCX1. Vous devez entrer PCX1\SSQDatabase1 et pas seulement SSQDatabase1 .__ ou vous recevrez l'erreur des canaux nommés.
Un fil sur MSDN Social, Objet: Fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server, contient une liste assez bonne de problèmes possibles liés à votre erreur. Vous voudrez peut-être voir si l'un d'entre eux pourrait être ce que vous vivez.
je viens d’activer TCP/IP, VIA, Tubes nommés dans Gestionnaire de configuration Sql Server, Mon problème a été résolu, consultez cette information pour plus d’informations Résolution des erreurs des tubes nommés Erreur 40
Utiliser SERVEUR \\ INSTANCE NAME .Utiliser une double barre oblique inversée dans mon projet a résolu mon problème.
Merci à Damian ...
TCP/IP Named Pipes ... les deux activés
Web Config .... (pour localhost)
<add name="FooData" connectionString="Data Source=localhost\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
A eu le même problème. Passé comme 6 heures quand dû migrer certains serveurs . Essayé toutes les suggestions disponibles sur ce sujet et d'autres.
La solution était aussi simple que le redémarrage du serveur!
dans mon cas, j'avais un serveur autonome, j'ai changé le port par défaut du port du serveur SQL 1433 dans le gestionnaire de configuration en un certain nombre et redémarré le service SQL pour prendre effet. au serveur. mais je ne pouvais pas me connecter à partir de ma machine locale via le serveur SQL, je recevais l'erreur:
Une erreur liée au réseau ou à une instance spécifique s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom de l'instance est correct et
sQL Server est configuré pour autoriser les connexions à distance. (fournisseur: fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server) (Microsoft SQL Server, Erreur: 5)
J'ai vérifié et vérifié tout ce qui précède
-Les canaux nommés/TCP sont activés .- Les connexions distantes sont autorisées .- Le pare-feu Windows est désactivé réseau de sous-réseau) .- Tout activé dans le Gestionnaire de configuration SQL Server.
puis j'ai vérifié le numéro de port par défaut à 1433 par défaut et redémarré le service du serveur SQL. Le problème a été résolu et je suis en mesure de connecter le serveur SQL à partir de mon studio de gestion local.
J'ai eu le même problème. J'utilise MSSQL Server Management Studio 2017 et j'ai résolu ce problème en procédant comme suit:
et l'a fixé.
Essayez les étapes suivantes:
Ouvrez la fenêtre Services (ouvrez la "boîte d’exécution" et tapez services.msc).
Recherche de services SQL (avec préfixe SQL).
Démarrez-les (si vous ne pouvez pas commencer. Passez à l'étape 4).
Cliquez avec le bouton droit de la souris sur chaque service -> Propriétés -> Aller à l’onglet "Connexion" -> choisir de vous connecter comme "Local ..." -> 0K. Puis redémarrez les services SQL.
Essayez Open SQL et connectez la base de données.
Si vous travaillez avec Asp.net core et utilisez appsettings.json, écrivez le serveur en tant que localhost et après l'écriture du nom d'instance SQL pour le canal nommé activé comme celui-ci.
"ConnectionString": {
"dewDB": "server=localhost\\dewelopersql;database=dewdb;User ID=sa;password=XXXXX",
},
Vous constaterez probablement que votre nom de base de données n’est pas correct, vous verrez le nom du serveur dans VS tel que "DESKTOP-0I14BKI" mais si vous ouvrez SSMS, vous verrez DESKTOP-0I14BKI\SQLBLAHBLAH} _ _, ajoutez simplement \ SQLBLAHBLAH "(nom d'instance) à votre" nom de serveur "dans les propriétés de connexion VS.
J'ai essayé à peu près tout sur cette page, mais j'avais des problèmes sous-jacents qui étaient en fait ce qui devait être résolu. Certaines tâches, telles que l'ouverture du Gestionnaire de configuration SQL Server, sont devenues des fichiers de fournisseur WMI corrompus ou manquants.
Il existe de nombreux moyens fastidieux de résoudre ce problème en fonction de ce que j'ai lu, mais l'outil de tweaking.com a pu supprimer et remplacer/réparer les fichiers de mon fournisseur WMI (Windows Management Instrumentation).
J'avais l'habitude de réparer un ordinateur et globalement, l'outil tweaking.com m'a vraiment impressionné, et cela a été suggéré à partir de l'une des pages du forum sur les erreurs WMI que j'ai consultées.
Après avoir résolu ce problème, j'ai pu me connecter à ma base de données SQL, à la fois localement et à distance.
J'espère que ça aide quelqu'un.
Je me suis battu pendant des siècles sur ce sujet avant de comprendre mon erreur: j'avais utilisé des virgules au lieu de points-virgules dans la chaîne de connexion
J'ai une autre solution, je pense… .. J'ai récemment changé le nom de mon ordinateur, donc je ne pouvais toujours pas me connecter après avoir essayé toutes les méthodes ci-dessus . J'ai changé le nom du serveur ... > (recherchez plus) => sous le moteur de base de données, un nouveau serveur a été trouvé, identique au nouveau nom de l'ordinateur . Cela a fonctionné et la vie est redevenue belle.
J'ai suggéré ci-dessous la procédure à suivre pour résoudre votre problème Comment corriger l'erreur 'Fournisseur de canaux nommés, erreur 40 - Impossible d'ouvrir une connexion à' SQL Server '
Activez le protocole Piped TCP/Ip en accédant à Gestion de l’ordinateur -> SQL et services, assurez-vous que le service est activé. Renforcez le port sur le pare-feu. Essayez de vous connecter via Invite de commandes -> en tant qu'administrateur; En dernier, le nom d'utilisateur .__ devrait être (local)\SQLEXPRESS. J'espère que cela t'aides.
J'ai eu ce problème, mais aucune des suggestions ci-dessus ne l'a résolu.
Je voyais ce problème lorsque j'ai déployé mon site Web pour IIS. Le correctif consistait à définir des paramètres avancés dans le pool d'applications par défaut et à remplacer la propriété d'identité par défaut par la valeur administrateur.
Solution très simple
use (local)\InstanceName that it.it a fonctionné pour moi.
J'ai eu le même problème et résolu le problème en désactivant mon pare-feu (ESET).
La première étape pour résoudre ce problème devrait être d’essayer d’envoyer une requête ping à votre propre ordinateur à partir d’un autre ordinateur. Si le pare-feu est activé, vous ne pourrez peut-être pas vous envoyer de commandes ping. J'ai essayé de faire un ping sur mon propre PC, puis le ping a échoué (je n'ai pas eu de réponse du serveur)
Pour moi, c'était un problème de pare-feu.
Vous devez d’abord ajouter le port (comme 1444 et peut-être 1434), mais aussi
C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe
et
%ProgramFiles%\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\SQLAGENT.EXE
La deuxième fois que j'ai eu ce problème, c'est quand je suis revenu au pare-feu, les chemins n'étaient pas corrects et je devais mettre à jour les formulaires 12 à 13! Un simple clic sur Parcourir dans l'onglet Programmes et Services a permis de réaliser cela.
Enfin, essayez d’exécuter la commande
EXEC xp_readerrorlog 0,1, "n'a pas pu enregistrer le nom principal du service", Null
Pour moi, il a renvoyé la raison de l'erreur
TL; DR; Votre instance SQL Server utilise des ports dynamiques qui ne fonctionnent pas. Forcer SQL Server à utiliser le port statique n ° 1433.
Complete Details : Tout d'abord, ce problème est plus probable si vous avez un mélange d'instance nommée et par défaut ou d'instances nommées uniquement (ce qui était mon cas).
Concept clé : chaque instance de Microsoft SQL Server installée sur un ordinateur utilise un port différent pour écouter les demandes de connexion entrantes. L'instance par défaut de SQL Server utilise le port 1433. Lorsque vous installez des instances nommées, elles commencent à utiliser des ports dynamiques définis au moment du démarrage du service Windows correspondant à l'instance nommée SQL Server.
Mon code ne permettait pas (avec le code d'erreur 40) de se connecter à la seule instance SQL Server nommée que j'avais sur ma machine virtuelle. Vous pouvez essayer ci-dessous les solutions possibles:
Solution n ° 1 : Le code client qui tente de se connecter à une instance SQL Server prend l'aide du service de navigateur SQL Server pour déterminer le numéro de port sur lequel votre instance nommée écoute les connexions entrantes. Assurez-vous que le service de navigateur SQL est en cours d'exécution sur votre ordinateur.
Solution n ° 2 : Vérifiez le numéro de port (en jaune) utilisé par votre instance SQL Server nommée à partir du gestionnaire de configuration SQL Server, comme indiqué dans l'instantané ci-dessous:
Utilisez ce numéro de port explicitement dans votre chaîne de connexion ou avec sqlcmd
comme indiqué ci-dessous:
sqlcmd -s mymachinename,11380 -i deleteDB.sql -o SQLDelete.txt
Solution n ° 3 : forcez votre instance nommée à utiliser le port n ° 1433 utilisé par l'instance par défaut. N'oubliez pas que cela ne fonctionnera que si vous n'avez pas d'instance SQL Server par défaut sur votre ordinateur, car l'instance par défaut de SQL Server utiliserait déjà le port n ° 1433. Le même numéro de port ne peut pas être utilisé par deux services Windows différents.
Marquez le champ TCP Dynamic ports
en blanc et le champ TCP Port
en 1433.
Modifiez le numéro de port dans votre chaîne de connexion comme indiqué ci-dessous:
sqlcmd -s mymachinename\instanceName -i deleteDB.sql -o SQLDelete.txt
OU
sqlcmd -s mymachinename,1433 -i deleteDB.sql -o SQLDelete.txt
Remarque : chaque modification des paramètres TCP/IP nécessite le redémarrage du service Windows correspondant.
Fait assez intéressant après la résolution de l'erreur lorsque je suis revenu au paramétrage du port dynamique pour reproduire la même erreur, elle ne s'est pas produite. Pas certain de pourquoi.
Veuillez lire ci-dessous des discussions intéressantes pour en savoir plus sur les ports dynamiques de SQL Server:
Comment configurer le port SQL Server sur plusieurs instances?
Quand un port dynamique est-il "dynamique"?
Quand utiliser un TCP port dynamique et quand TCP Port?
J'ai eu des pistes pour résoudre mon problème de this blog.
Ouvrez le Gestionnaire de configuration SQL Server
J'essayais d'ajouter une nouvelle connexion dans VS2015. Aucune des suggestions ici n'a fonctionné. Suspectant une sorte de bogue dans l'assistant, d'autant plus que SSMS était capable de se connecter très bien, j'ai décidé d'essayer de le tromper. Ça a marché!
Au lieu d’ajouter la connexion, utilisez "Créer une nouvelle base de données SQL Server". Entrez votre nom de serveur et un nom aléatoire pour la nouvelle base de données, par exemple. "tester".
En supposant que cela réussisse, ouvrez l'Explorateur de serveurs dans VS, localisez la connexion dans Connexions de données, cliquez dessus avec le bouton droit de la souris et sélectionnez Modifier la connexion.
Remplacez "test" (à partir de l'étape 1) par le nom de la base de données existante à laquelle vous souhaitez vous connecter. Cliquez sur "Tester la connexion". Cette fois, ça devrait marcher!
Supprimez la base de données temporaire créée à l'étape 1.
Si vous avez essayé de redémarrer le service MSSQLSERVER et que cela n'a pas fonctionné, cela pourrait être une solution:
Si vous utilisez SQLExpress, le nom de votre serveur doit correspondre au nom d'ordinateur suivant\SQLExpress. Cependant, pour SQLDeveloper, il n'est pas nécessaire de redresser SQLDeveloper après votre nom d'ordinateur.
Après avoir suivi toutes les étapes mentionnées ici , s’il ne se connecte toujours pas, essayez d’ajouter le DNS avec l’adresse IP dans le fichier hosts du dossier etc. L'ajout d'une adresse IP au lieu d'un nom DNS dans la chaîne de connexion devrait constituer une solution temporaire pour vérifier si la connexion fonctionne réellement.
ouvrez le numéro de port 1433 sur votre serveur pour une connexion distante SQL
J'ai essayé d'utiliser l'adresse IP locale pour vous connecter, ainsi qu'une adresse publique . J'ai essayé:
Oui, le site peut communiquer avec le serveur Named pipes/TCP is activée. Les connexions à distance sont autorisées. Le pare-feu Windows est désactivé Création d'une exception pour le port 1433 dans le pare-feu Windows. Activée tout dans le Gestionnaire de configuration SQL Server.
j'ai assuré et fait ce qui précède aussi et je veux juste partager que le DOUBLE BACKSLASH
oBuilder.DataSource = "SPECIFICPCNAME\SQLEXPRESS";
L’utilisation d’un SINGLE BACKSLASH donnait lieu à une erreur de construction, à savoir: Erreur 1 Séquence d’échappement non reconnue
J'espère que cela aidera le prochain gars - j'ai sacrifié le dîner, le goûter de minuit et la NBA met le temps de résoudre ce problème (dommage)
Merci à [Tamizh venthan] ^ _ ^