sql >> Database teknologi >  >> Database Tools >> SSMS

Fjernforbindelse til MS SQL - Fejl ved brug af pyodbc vs succes ved brug af SQL Server Management Studio

"Men hvorfor ...?"

For dem, der er interesseret i hvorfor SQL Server Management Studio (SSMS) kan oprette forbindelse til servername\instance mens andre applikationer (såsom vores pyodbc-apps) ikke kan, er det fordi SSMS holder en MRU-liste (mest nyligt brugt) over portnumre i Windows-registreringsdatabasen på

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect

Hver MRU-post (registreringsværdi) ser nogenlunde sådan ud:

Name: PANORAMA\SQLEXPRESS
Type: REG_SZ 
Data: -1006030326:tcp:PANORAMA,52865

Når SSMS har oprettet forbindelse med instansnavn via SQL Browser-tjenesten på den eksterne maskine, kan den fortsætte med at oprette forbindelse ved instansnavn, selvom SQL-browseren ikke længere kører på fjernmaskinen, forudsat at portnummeret ikke er ændret. Apps, der ikke bruger denne MRU-liste (som vores pyodbc-app), skal have SQL Browser-tjenesten kørende på den eksterne maskine, hver gang de vil oprette forbindelse efter instansnavn.

Det mest almindelige scenario:

  • Jeg vil oprette forbindelse til YOUR-PC\SQLEXPRESS . Jeg prøver at gøre det fra SSMS på MY-PC , men det virker ikke, fordi SQL-browseren blev installeret med "Starttilstand" sat til "Manuel" på YOUR-PC .
  • Jeg beder dig starte SQL Browser-tjenesten på YOUR-PC , og du er venlig at overholde, men du starter bare tjenesten og glemmer at ændre indstillingen "Starttilstand" til "Automatisk".
  • Jeg er i stand til at oprette forbindelse via SSMS (som cacher YOUR-PC\SQLEXPRESS port i MRU'en). Min python-app kan også oprette forbindelse.
  • Efter næste gang YOUR-PC genstarter, jeg kan oprette forbindelse via SSMS (via MRU), men min python-app kan ikke (fordi SQL Browser-tjenesten ikke længere kører på YOUR-PC ).


  1. Viser phpmyadmin tal eller klat for mysqls utf8_bin-kaldskolonner?

  2. Oprettelse af registrerede servere via Powershell i SSMS

  3. Ugyldigt objektnavn sql

  4. Prestashop omdirigerer til det gamle domæne efter at have ændret det i databasen