"Verbindungsfehler geschlossen" beim Versuch, Ruby mit dem SQL-Server zu verbinden

8

Dies ist der Code, mit dem ich mich mit SQL Server 2012 Express verbinde. Der Name meiner Datei lautet Connect.rb .

%Vor%

Wenn ich den Code ausführe, erhalte ich den folgenden Fehler:

  

in 'execute': geschlossene Verbindung (TinyTds :: Error) von Connect.rb: in   "Haupt"

wenn ich den obigen Code durch den folgenden Code ersetze,

%Vor%

Ich erhalte den folgenden Fehler:

  

in 'connect': Verbindung nicht möglich: Adaptiver Server ist nicht verfügbar oder   existiert nicht

Was verursacht diesen Fehler und wie kann er behoben werden?

    
Richard77 15.10.2012, 00:33
quelle

4 Antworten

3

Sieht so aus, als ob die Konfiguration in Ordnung ist. dataserver ist das richtige Symbol, um eine nicht standardmäßige Instanz zu definieren.

Stellen Sie sicher, dass TCP / IP- und Named Pipes-Protokolle aktiviert sind (in SQL Express ist es standardmäßig deaktiviert). Aktivieren Sie auch SQL Server Browser-Dienst wird ausgeführt (standardmäßig deaktiviert).

Sie finden diese im Sql Server Configuration Manager im Startmenü unter Microsoft SQL Server / Konfigurationstools. Stellen Sie sicher, dass Sie sie sowohl in den "Client-Protokollen" als auch in jeder der aufgelisteten Instanzen aktivieren.

Stellen Sie außerdem sicher, dass Ihre Firewall Verbindungen auf dem Port zulässt, den SQL überwacht (Standardwert ist 1433).

Sie müssen den Port nicht angeben, da Tiny-TDS standardmäßig den Wert 1433 hat. Ihr zweites Code-Snippet enthält keine Instanz. Wenn Sie SQL Express für eine Instanz eingerichtet haben, müssen Sie dataserver, nicht host, verwenden und den Instanznamen angeben.

    
Dustin Davis 28.01.2013 05:23
quelle
2

Ich hatte genau dieses Problem und habe es schließlich herausgefunden. Ich weiß, das ist alt, aber ich hoffe, es könnte den Menschen in der Zukunft helfen.

Gehen Sie in den Sql Server Konfigurationsmanager (Start & gt; Microsoft SQL Server & gt; & gt; Konfigurationstools) und schalten Sie TCP / IP und Named Pipes ein. Klicken Sie in der Netzwerkkonfiguration mit der rechten Maustaste auf TCP / IP, wählen Sie Eigenschaften und dann IP-Adressen. Sie müssen die gewünschte Verbindung aktivieren (ich verwende eine VM, also habe ich die IPv4-Adresse verwendet), TCP-Dynamische Ports ausblocken und einen statischen Port angeben (ich benutze 1433).

Dann müssen Sie eingehenden Datenverkehr zu Port 1433 (oder was auch immer Ihr statischer Port ist) durch Ihre Firewall zulassen.

Ich habe das getan und bin endlich reingekommen!

    
vlyandra 30.03.2014 22:47
quelle
2

Versuchen Sie, die Portnummer (auch wenn es der Standardwert 1433 ist) zum Datenserverwert Ihrer Konfiguration hinzuzufügen. Ich hatte ein Setup, bei dem ich durch eine Traffic-Manager-Appliance getunnelt wurde, um einen SQL Server in einem Remote-Netzwerk zu erreichen, und TinyTDS stellte keine Verbindung her, wenn ich meine Konfiguration nicht wie folgt festlegte:

%Vor%

Das Setzen des port: Wertes in der Konfiguration hat in meinem Fall nichts bewirkt. Es ist merkwürdig, dass dieser Schritt benötigt wurde, da 1433 ohnehin die Standardeinstellung ist, und keine meiner anderen SQL Server-Verbindungskonfigurationen benötigte, dass der Port angegeben wurde, aber das Hinzufügen war für mich in diesem speziellen Fall die Lösung.

Sie können Ihre FreeTDS-Protokolldatei ansehen, um einen genaueren Blick darauf zu werfen, warum Ihre Verbindung fehlschlägt, indem Sie export TDSDUMP=/tmp/freetds.log ausführen und anschließend irb testen, um Ihre Verbindung mit TinyTDS zu testen, während Sie diese Protokolldatei verfolgen.

    
Threeve 16.04.2014 23:40
quelle
1

Unter Windows benötigen Sie:

Zuerst sollten Sie alle Berechtigungen auf dem SQL Server haben, und zwar mit Microsoft SQL Server Manager Studio.

Zweite , mit Sql Server Configuration Manager, gehen Sie zu SQL SERVER Netzwerkkonfiguration und aktivieren Sie Protokolle von Ihrem INSTANCE, das sind Pipeline mit Namen und TCP / IP, die aktiviert werden, wenn Sie das tun sollte zu SQL SERVER Services gehen und 1. SQL Server (Instanz) und 2. Sql Server Browser Explorer (wichtig)

starten

bei YAML: (Beispiel für Windows)

%Vor%     
quelle

Tags und Links