Połącznie z bazą mssql


(Aglasek) #1

Witam,

Mam problem z połączeniem się do bazy mssql. Mój plik w którym próbuje nawiązać połączenie to:

$myServer = "TU_PODAJE_IP_LOKALNEGO_SERWERA_BAZY_MSSQL";

$myUser = "XXX";

$myPass = "XXX";

$myDB = "XXX";


//connection to the database

$dbhandle = mssql_connect($myServer, $myUser, $myPass)

  or die("Couldn't connect to SQL Server on $myServer");


//select a database to work with

$selected = mssql_select_db($myDB, $dbhandle)

  or die("Couldn't open database $myDB");

Serwer na którym próbuje wykonać połączenie jest w sieci lokalnej z tym serwerem gdzie stoi baza mssql. Na ten serwer gdzie mam umieszczony w/w plik loguje się poprzez klienta TC i ftp z innego miasta Polski i mogę dowolnie edytować w/w plik na serwerze. Co robię nie tak? Proszę o pomoc. Dodam, iż po wywołaniu phpinfo() pokazuje mi jakieś ustawienia mssql czyli powinno być ok.


([alex]) #2

Sprawdź czy firewall cie nie odcina.


(Aglasek) #3

niby to nie firewall


([alex]) #4

Spróbuj połączyć się standardowym klientem mssql.


(ra-v) #5
(E_ALL);[/code]

I podaj nam jakie wyskakują błędy.



Port nie ustawiony?

(Aglasek) #6

Nie połącze sie std. klientem mssql bo tam trzeba miec IP zewnetrzne bo łącze się przez neta(z innego miasta polski) a ja mam lokalne IP które mogę wpisać tylko w pliku serwera aplikacji który to serwer jest w sieci lokalnej z tym serwerm mssql. No chyba, że można jakoś połączyć się przez neta poprzez klienta mssql do tej bazy która nie ma zew IP?

Wyskakuje taki błąd:

Warning: mssql_connect(): Unable to connect to server: 192.168.2.100 in /home/services/httpd/html/shop/connect_mssql.php on line 12 Call Stack: 0.0001 634773 4. {main}() /home/services/httpd/html/shop/connect_mssql.php:0 0.0001 636323 3. mssql_connect() /home/services/httpd/html/shop/connect_mssql.php:12

baza działa na porcie domyślnym.


(ra-v) #7

Czyli rozumiem że do serwera aplikacji masz dostęp zewsząd, a on ma dostęp do serwera bazy danych, który jest widoczny tylko dla serwera aplikacji.

Połączyć się można tunelująć połączenie, tylko pewnie trzeba odpowiednie porty odblokować/przekierować - ale tu to nie ma sensu.

Wywala się ewidentnie na tym

 mssql_connect($myServer, $myUser, $myPass) [/code]

Czyli IP serwera i/lub login i/lub hasło są nieprawidłowe. Wiesz na 100% że te dane są poprawne? Skąd je masz?

W adres hosta możesz wpisać poprzez np. 192.168.2.100:1433 jeśli to serwer linuxowy, i 192.168.2.100,1433 jeśli to serwer windowsowy. (o ile 1433 to ten domyślny port)


([alex]) #8

ra-v , 192.168.2.100:1433 zadziała w obu przypadkach, wg mnie należy sprawdzić firewalla. Połączyć się z serwerem na którym stoi PHP przez putty i z poziomu linuksa odpalić std. klienta. Jak on się nie połączy - to szukasz poprawnego adresu lub sposobu obejścia/wyłączenia firewalla, a jak się połączy to szukasz problemów w PHP. Dopóki nie wiesz po której stronie szukać to niewiele wskórasz.


(Aglasek) #9

a znacie może jakiegoś darmowego klienta do obsługi mssql którego możecie polecić przez którego mógłbym się połączyć?


([alex]) #10

Nie potrzebujesz najlepszego stabilnego klienta, potrzebujesz byle jakiego aby odpalić góra kilka razy. Czyli nawet darmowy nie musi być, może być wersja np 30 dniowa.