Mit Freetds auf MSSQL 2008 Instanz verbinden *gelöst*

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Mathias_J
Beiträge: 18
Registriert: 18.11.2004 10:51:44
Wohnort: Rostock
Kontaktdaten:

Mit Freetds auf MSSQL 2008 Instanz verbinden *gelöst*

Beitrag von Mathias_J » 21.07.2010 11:20:49

Hallo allerseits,

ich bin schon am verzweifeln... vor einiger Zeit haben wir unseren MS-SQL-Server von der Version 2000 auf 2008 geupdatet und seit dem kann meine PHP-Anwendung (mssql-PHP-Befehle) sich nicht mehr mit dem MS-SQL-Server verbinden und suche deshalb nach Alternativen. Eine vielversprechende Möglichkeit scheint mir das Linux ODBC mit FreeTDS zu sein.

Kurzer Hand habe ich ein paar Tutorials gefunden und entsprechend umgesetzt. Das Problem, welches mich nun plagt... auch mit dem ODBC komme ich irgendwie nicht auf den Server rauf.

less /etc/freetds/freetds.conf

Code: Alles auswählen

[bender_svr]
host = bender_svr
port = 1433
tds version = 10
less /etc/odbc.ini

Code: Alles auswählen

[Cobra_sbit_db]
MyDatasource = Cobra_SBIT
Driver = /usr/lib/odbc/libtdsodbc.so
Description = CobraSQL sbit
Trace = Yes
TraceFile = /tmp/sql.log
Servername = bender_svr
Database = surfboxx_db

[Default]
Driver = /usr/lib/odbc/libtdsodbc.so
Mache ich nun einen Verbindungstest mit isql Cobra_sbit_db sqlnutzer sqlpasswort dauert es eine Weile und kommt die Fehlermeldung

Code: Alles auswählen

src/tds/login.c: tds_connect: 10.3.1.50:1433: Connection timed out
[ISQL]ERROR: Could not SQLConnect 
Passe ich nun in der freetds.conf den Servernamen von "bender_svr" auf "bender_svr\instanzname" an, kommt sofort ohne Verzögerung die folgende Fehlermeldung

Code: Alles auswählen

[ISQL]ERROR: Could not SQLConnect
Mittlerweile bin ich am verzweifeln, weil ich irgendwie nicht weiter komme und sich meine PHP-Anwendung mit dem SQL-Server synchronisieren muss.
Habt ihr noch eine Idfee warum der SQL2008 mich von LINUX nicht rauflassen möchte?

EDIT:
der MS-SQL-Server Name: BENDER_SVR\COBRA
Zuletzt geändert von Mathias_J am 22.07.2010 16:49:18, insgesamt 2-mal geändert.

Mathias_J
Beiträge: 18
Registriert: 18.11.2004 10:51:44
Wohnort: Rostock
Kontaktdaten:

Re: von ETCH auf MSSQL 2008 Instanz verbinden

Beitrag von Mathias_J » 22.07.2010 16:48:05

so... ich habe neue Erkenntnisse mit den ich das Problem behoben habe :-)
1. folgendes auf dem MS SQL-Server:
- "SQL Server-Konfigurations-Manager" -> "SQL-Server Netzwerkkonfiguration"->Protokolle für <Instanzname> -> TCP/IP aktivieren!
- Doppelklick "Protokolle für <Instanzname>" -> Register "IP-Adressen"-> Abschnitt "IPALL" Dynamische TCP-Ports notieren
Unter dem Dynamischen TCP-Port reagiert nur diese MS-SQL-Instanz!

2. auf dem Linux-Server
- in der "/etc/freetds/freetds.conf" den Port des Servers auf den "Dynamische TCP-Ports " ändern und bei host nur den "Servernamen" ohne Instanznamen eintragen!


TEST sollte nun klappen. Ggf. dem MS-SQL-Nutzer die Serverrolle "sysadmin" zu ordnen

Code: Alles auswählen

isql -v [DSN] [UID] [PWD]
Voila...erledigt! :-)

Was war das kniffelig... :D

Antworten