sql >> データベース >  >> Database Tools >> SSMS

MSSQLへのリモート接続-pyodbcを使用した場合のエラーとSQLServerManagementStudioを使用した場合の成功

    「でもなぜ...?」

    理由に興味のある方へ SQL Server Management Studio(SSMS)は、servername\instanceに接続できます 他のアプリケーション(pyodbcアプリなど)ではできませんが、SSMSがWindowsレジストリのポート番号のMRU(最近使用された)リストを保持しているためです

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

    各MRUエントリ(レジストリ値)は次のようになります。

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

    SSMSは、リモートマシンのSQLブラウザサービスを介してインスタンス名で正常に接続されると、ポート番号が変更されていない限り、SQLブラウザがリモートマシンで実行されていなくても、インスタンス名で接続を継続できます。このMRUリストを使用しないアプリ(pyodbcアプリなど)は、インスタンス名で接続するたびに、リモートマシンでSQLブラウザサービスを実行する必要があります。

    最も一般的なシナリオ:

    • YOUR-PC\SQLEXPRESSに接続したい 。 MY-PCのSSMSからそれを試してみます 、ただし、SQLブラウザがYOUR-PCで「StartMode」を「Manual」に設定してインストールされているため、機能しません。 。
    • YOUR-PCでSQLブラウザサービスを開始するようお願いします 、そしてあなたは親切に従いますが、あなたはただサービスを開始し、「開始モード」設定を「自動」に変更するのを忘れています。
    • SSMS(YOUR-PC\SQLEXPRESSをキャッシュする)を介して接続できます MRUのポート)。私のPythonアプリも接続できます。
    • 次回以降YOUR-PC 再起動すると、SSMS(MRU経由)で接続できますが、Pythonアプリでは接続できません(SQLブラウザサービスがYOUR-PCで実行されなくなったため) 。


    1. ms sql server management studioでクエリを自動的に更新しますか?

    2. Mysql / PHPMyAdminでの1138の999.99の値

    3. XAMPPのphpMyAdminを最新のものにアップグレードするにはどうすればよいですか?

    4. デフォルトの「新しいストアドプロシージャ」SSMS2008テンプレートをカスタマイズする