2016-08-03 14 views
1

Ich sehe diesen Fehler weiterhin und kann keine Verbindung zur Datenbank auf dem Remote-Server herstellen.TinyTDS: Servername nicht in den Konfigurationsdateien gefunden

ich eine Verbindungszeichenfolge der Datenbank gegeben würde, die wie folgt aussieht: Jetzt

data source=qsss.gar.de\SQL2012,3000;initial catalog=City;persist security info=True;user id=user_me;password=user_me##2009; 

, ich habe eine database.yml Datei auf dieser Verbindungszeichenfolge basierend erstellt, wie die folgenden:

development: 
    adapter: 'sqlserver' 
    host:  'qsss.gar.de\SQL2012,3000' 
    port:  1433 
    database: 'City' 
    username: 'user_me' 
    password: 'user_me##2009' 

Und wie ich versuche und den Server laufen, trifft es mich immer mit dem Server-Namen nicht in den Konfigurationsdateien Fehler gefunden.

opts[:port] ||= 1433 
     opts[:dataserver] = "#{opts[:host]}:#{opts[:port]}" if opts[:dataserver].to_s.empty? 
     connect(opts) // ERROR AT THIS LINE 
    end 

    def tds_73? 

Bitte versuchen Sie mir zu helfen herauszufinden, was das Problem dabei ist?

UPDATE:

kann ich mit dem Server verbinden SQLPro for MSSQL Assistenten, mit genau dem gleichen Verbindungsparameter:

picture

Es funktioniert vom Assistenten, aber nicht von Code TinyTDS !

+0

Nicht vertraut, aber der Hostname könnte nur "qsss.gar.de" sein (auch der Port vielleicht 3000) –

+0

Nein, das ist alles in Ordnung, ich kann mit genau diesen Parametern aus dem SQLPro-Assistenten verbinden, aber nicht aus der Anwendung. – zwiebl

+0

versuchen Sie, den Port auf 3000 zu ändern und das 3000 vom Host zu entfernen, da dies nichts mit dem Hostnamen zu tun hat. – engineersmnky

Antwort

0

Bitte versuchen Sie diese

development: 
    adapter: 'sqlserver' 
    dataserver: 'qsss.gar.de\SQL2012:3000' 
    database: 'City' 
    username: 'user_me' 
    password: 'user_me##2009' 

Ihre aktuelle Konfiguration aus 2 Dinge leiden

  • Zuerst Sie einen Port angeben und einschließlich es in den Host-Wert so wird dies wie qsss.gar.de\SQL2012,3000:1433 tatsächlich aussehen

  • Zweitens, wenn der Host interpretiert wird der Backslash verdoppelt werden zB qsss.gar.de\\SQL2012,3000:1433

Die dataserver Option sollte dies als TinyTDS lösen, sagt diese Option wird der Backslash und den Port in hostname:port-Format unterstützen. Ich habe das nicht getestet, aber laut der Dokumentation sollte es eine ausreichende Lösung sein.

+0

Ich habe versucht, wie Sie geschrieben, aber es brachte mich zurück auf die erste Fehlerzeile: "Server-Name nicht in den Konfigurationsdateien gefunden" :( – zwiebl

+0

Was mich verwirrt ist, dass ich Folgendes in der Befehlszeile bekomme, als ich versuche, die zu erreichen server: "Gestartet GET"/"for :: 1 am 2016-08-03 16:56:02 +0200. Also der GET-Befehl ist wie für die leere IP-Adresse, es sieht komisch aus? – zwiebl

+0

Ich dachte, wenn ich ändere den Host, um nur "qsss.gar.de" zu sein, und nicht die "qsss.gar.de \ SQL2012", die ich verbinden kann. Also ist das Problem irgendwo mit dem Parsen das "\". Was mich interessiert, tun Ich brauche sogar diesen Teil "SQL2012", um zu arbeiten? – zwiebl

0

ich das gleiche Problem habe und ich war in der Lage, es zu lösen, indem die „host“ Parameter „data“ in der config.yml Datei zu ändern.

Überprüfen Sie auch, ob der Server, auf dem die Anwendung ausgeführt wird, den DNS-Namen des Datenbankservers auflösen kann, wenn er die IP des Servers nicht angibt.

Ich benutze auch Microsoft SQL-Datenbank und kann nur beheben "TinyTds :: Fehler: Server-Name nicht in Konfigurationsdateien gefunden" Fehler nach dem Ändern der oben genannten Datei.