mssql/php "Could not connect to database"

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb hier een webserver geinstalleerd met :

Windows 2000 pro
apache 1.3.31
php 4.3.8


Na een paar pogingen heb ik dan alles werkend.

Ik wil nu vanuit een php script een DB connectie maken met een MS-SQL server die op een tweede computer in het netwerk draait.

Ik heb een test.php gemaakt die de volgende code bevat:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
    echo 'Current PHP version: ' . phpversion();
    //MSSQL Host IP
    $db_host = '10.0.0.2:1433';
    
    //MSSQL Username
    $db_user = 'user';
    
    //MSSQL Password
    $db_pass = 'password';
    
    //MSSQL Database
    $db_name = 'testdb';
    
    $db_conn = mssql_connect ($db_host,$db_user,$db_pass) or die
("Could not connect to database: ".mssql_get_last_message());

?>


(de eigenlijke sql queries heb ik voor het gemak weggelaten omdat het script daar toch niet aan toe komt)

Ik blijf nu de melding krijgen
[quote]
Warning: mssql_connect(): Unable to connect to server 10.0.0.2:1433 in c:\website... etc

Ik heb gecontrolleerd en de username/password en naam van de dbase is OK.

Ook is vanaf de webserver de database te bereiken via telnet 10.0.0.2 1433

Bij google is niet veel over mssql te vinden.

Heeft iemand een idee of ik iets over het hoofd zie ?

Alvast bedankt :)

(ps: ik ben al teruggevallen naar de vorige php en apache omdat apache 2.x en php 5 helemaal niet stabiel wilde installeren)

Acties:
  • 0 Henk 'm!

Verwijderd

Als je '10.0.0.2:1433' nou verandert in localhost ?

Acties:
  • 0 Henk 'm!

  • Arjan A
  • Registratie: November 2000
  • Laatst online: 21-09 12:24

Arjan A

Cenosillicafoob

Verwijderd schreef op 01 september 2004 @ 14:53:
Als je '10.0.0.2:1433' nou verandert in localhost ?
De MS-SQL server draait op een andere computer in het netwerk.

@TS: Is het misschien mogelijk via OLE-DB of ODBC een koppeling te maken?

[ Voor 18% gewijzigd door Arjan A op 01-09-2004 14:55 ]

Canon EOS | DJI M2P
Fotoblog · Mijn werk aan jouw muur


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 21-09 16:37

Basszje

Reisvaap!]

Is het een server die meerdere instanties draait :? Probeer dan :

PHP:
1
2
3
4
$dbhost="server_name\instance_name,port_number";
$dbuser="foo";
$dbpass="foo";
$db=mssql_connect($dbhost,$dbuser,$dbpass)


Met de juiste waardes natuurlijk :P

[ Voor 16% gewijzigd door Basszje op 01-09-2004 14:59 ]

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

http://www.php.net/manual/en/function.mssql-connect.php

Hier staat een hele berg commentaar bij. Een paar dingen die ik tegen kwam waren onderandere dat bepaalde componenten geinstaleerd zouden moeten zijn waneer de db op een andere dan de webserver draait en dat je een , moet gebruiken ipv een : voor de scheiding met het poort nummer (10.0.0.2,1433 dus).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb beide opties geprobeert zonder resultaat.
Ook her verwijzen naar een instance lukte niet.

Verder heb ik even bij wijze van test, de php geupload naar mijn externe webhost (die oook php met mssql ondersteuning heb draaien)

Ook na het aanpassen van het IP in het externe IP adres, kreeg ik dezelfde melding.

En ook van daaruit was poort 1433 wel te bereiken via een telnet.

Ik zou dus bijna denken dat er iets in de instellingen van de mssql server niet goed staat.


Edit : Btw het betreft hier een MS-SQL 2000 server, mocht dat iets uitmaken.

[ Voor 8% gewijzigd door Verwijderd op 01-09-2004 15:12 ]


Acties:
  • 0 Henk 'm!

  • badeendjuh
  • Registratie: Oktober 2003
  • Laatst online: 17-09 14:49
kijk eens op http://php.net/mssql_connect en dan vooral onderaan bij de user comments.

jij gebruikt nieuwere versies als de user die dit poste, maar wellicht dat het je wat verder kan helpen:
Applies to : IIS 5.0, PHP 4.3.4, MS-SQL 2000

If you try to connect to a host with multiple SQL-Server instances, you have to copy the ntwdblib.dll from a MS SQL 2000 installation to the system32 directory of your webserver.

The ntwdblib.dll bundled with php 4.3.4 does not support multpiple server instance.

I used the DLL version 2000.80.194.0 that came with MS SQL Server 8.00.194.

Example:
PHP:
1
2
3
4
5
6
$dbhost="server_name\instance_name,port_number";
$dbuser="foo";
$dbpass="foo";
$dbname="foo";
$db=mssql_connect($dbhost,$dbuser,$dbpass);
mssql_select_db($dbname,$db);

[ Voor 12% gewijzigd door badeendjuh op 01-09-2004 15:36 . Reden: versie zin toegevoegd ]


Acties:
  • 0 Henk 'm!

Verwijderd

Is het niet zo dat Mysql default alleen connecties van localhost accepteerd?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Helaas.
Ik heb het geprobeert met 2 andere versies van ntwdblib.dll, waaronder de versie die bij sql server zit. Maar ik blijf de melding krijgen dat ik geen verbinding kan maken.

Heeft iemand misschien een idee of het aan de serverkant kan liggen (misschien in de instellingen) ?

Dit omdat ik ook vanaf andere locaties dezelfde foutmelding krijg. Lijkt mij dus sterk dat al deze versies van PHP niet goed geinstalleerd zijn :)

edit:
Btw ook de andere opties op die site, zoals het bij de server installeren van de laatste nieuwe Microsoft Data Access Components (MDAC), heeft niet geholpen.

@Neighbor : Geen idee, maar dit is mssql :D. En telnetten vanaf een andere locatie naar poort 1431 geeft wel aan dat er een server aanhangt. Ook verbindingen die ik vanuit VB6 maak elders naar de database werken prima.

[ Voor 33% gewijzigd door Verwijderd op 01-09-2004 16:07 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Er staat ergens tussen die comments ook jnog dat je, waneer je vanaf een andere computer verbind, je ook de clienttools op je webserver moet installeren (Voor de exacte beschrijving zul je toch weer in de comments moeten kijken)

Ik frot trouwens ook ff mssql bij de titel voor de duidelijkheid. Het is immers primair een probleem met mssql en php, en niet apache en php.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is gelukt :)

Ik moest indetdaad de client tools nog installeren.
Bedankt :)
Pagina: 1