
69304
04.12.2009, aktualisiert um 11:01:27 Uhr
Von Linux Server auf MS Server mit mssql connecten Unable to connect
Hallo!
Erstmal folgendes Szenario:
- Windows Server 2003 mit SQL Server 2000 installiert
- Linux Ubuntu Server 9.10 mit XAMPP 1.7.2 installiert
Auf dem MS-Server ist die Datenbank, auf die zugegriffen werden soll vorhanden.
Da ich aber auf dem Linux Server keinen ODBC-Connector wie unter Windows erstellen kann, will ich eine Abfrage über folgendes Skript machen:
Als Antwort in Browser erhalte ich folgende Meldung:
Was kann man hier machen? Erreichen kann ich den Windows Server - Ping erfolgreich! Und von meinem Client mit XAMPP für Windows und einem System-ODBC-Connector funktioniert es tadellos....
Bin schon echt am verzweifeln! Mit der ADODB-Klasse bekomme ich an sich die selbe Fehlermeldung...
Erstmal folgendes Szenario:
- Windows Server 2003 mit SQL Server 2000 installiert
- Linux Ubuntu Server 9.10 mit XAMPP 1.7.2 installiert
Auf dem MS-Server ist die Datenbank, auf die zugegriffen werden soll vorhanden.
Da ich aber auf dem Linux Server keinen ODBC-Connector wie unter Windows erstellen kann, will ich eine Abfrage über folgendes Skript machen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$myServer = "192.168.101.2";
$myUser = "sa";
$myPass = "*****";
$myDB = "*****";
$dbhandle = mssql_connect($myServer, $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer");
$selected = mssql_select_db($myDB, $dbhandle) or die("Couldn't open database $myDB");
$query = "SELECT * FROM STOERUNGEN WHERE StoerungsNr LIKE '2009460086'";
$result = mssql_query($query);
while($row = mssql_fetch_array($result))
{
echo "<li>" . $row["StoerungsNr"] . $row["Firma"] . "</li>";
}
mssql_close($dbhandle);
?>
Als Antwort in Browser erhalte ich folgende Meldung:
1
2
2
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: 192.168.101.2 in /opt/lampp/htdocs/stoerungen/index.php on line 6
Couldn't connect to SQL Server on 192.168.101.2
Was kann man hier machen? Erreichen kann ich den Windows Server - Ping erfolgreich! Und von meinem Client mit XAMPP für Windows und einem System-ODBC-Connector funktioniert es tadellos....
Bin schon echt am verzweifeln! Mit der ADODB-Klasse bekomme ich an sich die selbe Fehlermeldung...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 130947
Url: https://administrator.de/forum/von-linux-server-auf-ms-server-mit-mssql-connecten-unable-to-connect-130947.html
Ausgedruckt am: 14.04.2025 um 23:04 Uhr
9 Kommentare
Neuester Kommentar

Hallo,
- die PHP Anleitung meint man muss unter Linux die freetds-lib installiert haben, auf die greift php zurück ( http://www.php.net/manual/de/mssql.requirements.php ). Ist die drauf ? (ok, ich würde dann eigentlich auch eine andere Fehlermeldung erwarten).
- Die SQL-Authentisierung an ? Wenn nur Windows-Auth angeschaltet wird das nix mit sa als User.
- TCP als Protokoll im SQL-Server aktiviert ? Mit Named Pipes wird man nix von Linux aus meine ich.
- Geht ein "telnet <db-server> 1433" vom Linux-Rechner ? Das ist der Standard TCP/IP Port von MS SQL.
Mehr fällt mir jetzt erstmal nicht ein
- die PHP Anleitung meint man muss unter Linux die freetds-lib installiert haben, auf die greift php zurück ( http://www.php.net/manual/de/mssql.requirements.php ). Ist die drauf ? (ok, ich würde dann eigentlich auch eine andere Fehlermeldung erwarten).
- Die SQL-Authentisierung an ? Wenn nur Windows-Auth angeschaltet wird das nix mit sa als User.
- TCP als Protokoll im SQL-Server aktiviert ? Mit Named Pipes wird man nix von Linux aus meine ich.
- Geht ein "telnet <db-server> 1433" vom Linux-Rechner ? Das ist der Standard TCP/IP Port von MS SQL.
Mehr fällt mir jetzt erstmal nicht ein
Vielleicht hilft es weiter, wenn du mit der Funktion "mssql_get_last_message" die letzte Meldung des Server zurückgeben lässt. Evtl. hilft das bei der Fehlersuche weiter, wenn der Server einen Grund für den reject angibt.
Link: http://php.net/manual/de/function.mssql-get-last-message.php
Zum Thema Instanzname:
Link: http://php.net/manual/de/function.mssql-get-last-message.php
Zum Thema Instanzname:
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
SQL Server Instance Name :
In SQL Server Management Studio->RegisterServers->double click your server to open the Object Explorer -> right click to select the properties window ->General Tab - to see the ServerName (instance name)
or Open a new query in SQL Server Management window and execute the following
-- to get the sql server instance name
select @@ServerName
Was liefert denn nun mssql_get_last_message zurück?
Und hier scheint es, als dürftest du diesen Aufruf nicht als Referenz anlegen:
Trotz allem liegt das Problem wohl noch etwas früher, beim Verbindungsaufbau.
Und (Local) als Ergebnis für den Instanznamen finde ich etwas seltsam. Du solltest zumindest den Computernamen des Servers rausbekommen.
Was mir noch einfällt:
Welchen Authentifizierungstyp verwendest du? - Wenn du Windows Authentifizierung verwendest, dann würde das erklären, warum der Linux Client nicht drauf kommt...
Und du könntest mal in den Serverlogs nachsehen, ob da Einträge gemacht werden, evtl. steht ja was dabei.
1
Strict Standards: Only variables should be assigned by reference in /opt/lampp/htdocs/stoerungen/index_adodb.php on line 9
Und hier scheint es, als dürftest du diesen Aufruf nicht als Referenz anlegen:
1
$db =& ADONewConnection('odbc_mssql');
Trotz allem liegt das Problem wohl noch etwas früher, beim Verbindungsaufbau.
Und (Local) als Ergebnis für den Instanznamen finde ich etwas seltsam. Du solltest zumindest den Computernamen des Servers rausbekommen.
Was mir noch einfällt:
Welchen Authentifizierungstyp verwendest du? - Wenn du Windows Authentifizierung verwendest, dann würde das erklären, warum der Linux Client nicht drauf kommt...
Und du könntest mal in den Serverlogs nachsehen, ob da Einträge gemacht werden, evtl. steht ja was dabei.