Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: PHP připojení k MS SQL přes ODBC na VirtualBoxu  (Přečteno 3042 krát)

Henrynr

  • Aktivní člen
  • *
  • Příspěvků: 366
PHP připojení k MS SQL přes ODBC na VirtualBoxu
« kdy: 16 Června 2009, 00:54:19 »
Prosím o pomoc:
Na VirtualBoxu (WinXP) jsem si rozchodil Microsoft SQL server 2005. Tento poskytuje data přes ODBC. Na lokálním stroji se k tomuto ODBC zdroji bez problému připojím v PHP přes odbc_connet(), tato část funguje bezvadně.
Problém nastavá ve chvíli, kdy se chci k tomuto ODBC zdroji připojit vzdáleně z hostujícího stroje (Ubuntu 9.04).

Podle různých návodů (např. https://lists.ubuntu.com/archives/ubuntu-users/2005-May/033937.html, http://ubuntuforums.org/showthread.php?p=6956316) se zdá, že nejlepší je použít tzv. FreeTDS ovladač.

Relevantní část /etc/freetds/freetds.conf
Kód: [Vybrat]
[henmssql]
    host = 192.168.1.9
    port = 1433
    tds version = 8.0

Relevantní část /etc/odbcinst.ini
Kód: [Vybrat]
[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
FileUsage       = 1
CPTimeout       = 5
CPReuse         = 5

Relevantní část /etc/odbc.ini
Kód: [Vybrat]
[henmssql]
Description     = Henrys pokus on The MSSQL Server
Driver          = FreeTDS
Servername      = henmssql
Database        = POKUS


Bohužel pokus zkrachuje už na testování právě tohoto FreeTDS ovladače:
Kód: [Vybrat]
sqsh -S henmssql -U <user> -P <passwd>

Dostanu chybu:
Citace
sqsh-2.1 Copyright (C) 1995-2001 Scott C. Gray
This is free software with ABSOLUTELY NO WARRANTY
For more information type '\warranty'
Open Client Message
Layer 0, Origin 0, Severity 78, Number 41
Unable to connect: Adaptive Server is unavailable or does not exist

A tím končím, protože netuším, proč ten server není vidět.
Firewall mám povypínanej a jinak se na tom vzdáleným virtuálním stroji dostanu na všechny služby (Apache, MySql, ...).
Podle tohoto návodu: http://support.microsoft.com/kb/914277 jsem povolil (aspoň myslím) vzdálený přístup na MS SQL server.
Teď nevím jak dál. Pomůže mi někdo?
Doma i v práci Linux Mint 17

René Baran

  • Návštěvník
  • Příspěvků: 75
    • http://linux.remontsw.eu
Re: PHP připojení k MS SQL přes ODBC na VirtualBoxu
« Odpověď #1 kdy: 16 Června 2009, 07:10:07 »
Ahoj

Mel jsem podobny podobny problem, jen s databazi MySQL a FTP pristupem.

U mne byl problem v typu sitoveho pripojeni. Jake mas sitove pripojeni na virtualu? Pokud mas NAT, a rozchodis na Windows FTP server (napr. CesarFTP), tak se z lokalu (Linuxu) take na dany server pripojis. Ale z jineho PC ne. Neprojde pres NAT. Musis nastavit typ pripojeni pres Bridge, aby dany OS na Virtualu mel vlastni IP adresu.

R.




Henrynr

  • Aktivní člen
  • *
  • Příspěvků: 366
Re: PHP připojení k MS SQL přes ODBC na VirtualBoxu
« Odpověď #2 kdy: 16 Června 2009, 12:17:50 »
... Jake mas sitove pripojeni na virtualu? Pokud mas NAT, ...
V poslední verzi VirtualBoxu to teď nazývají "Síťový most". Hostující stroj má IP 192.168.1.2 a hostovaný 192.168.1.9
Skutečně je to další stroj v síti. Snadno se připojím i k MySQL serveru, který je na tom hostovaným stroji taky.
Doma i v práci Linux Mint 17

René Baran

  • Návštěvník
  • Příspěvků: 75
    • http://linux.remontsw.eu
Re: PHP připojení k MS SQL přes ODBC na VirtualBoxu
« Odpověď #3 kdy: 16 Června 2009, 12:54:33 »
Pokud mas nastaven Bridge ETH tak je to problem nastaveni te databaze.  Ale pokud mas NAT, tak je mozne ze komunikuje hostujici OS s hostovany OS na zaklade preklapeni a pres urcity port (zalezitost Virtualizacniho SW). Takze se na danou databazi dostanes, ale nedostanes se na ni z jineho PC, ktery vlastne dane PC (hostovany OS) nevidi. Mne to dle techto pravidel funguje.

Henrynr

  • Aktivní člen
  • *
  • Příspěvků: 366
Re: PHP připojení k MS SQL přes ODBC na VirtualBoxu
« Odpověď #4 kdy: 17 Června 2009, 00:23:25 »
Opravdu to není za na NATem a požadavky se "překlápí" dobře.

No, MS SQL server by měl naslouchat na portu 1433. Tak napadlo zkusit nmap a výsledek je:
Citace
Starting Nmap 4.76 ( http://nmap.org ) at 2009-06-17 00:13 CEST
Interesting ports on mssql (192.168.1.9):
Not shown: 994 closed ports
PORT     STATE SERVICE
80/tcp   open  http
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
2869/tcp open  unknown
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 1.42 seconds

Co znamená, že tam chybí ten port 1433? Že je pro okolní síť uzavřen a poslouchá jenom na lokále (protože vím, že na lokálu to funguje)?
Doma i v práci Linux Mint 17

Fracty

  • Stálý člen
  • **
  • Příspěvků: 809
Re: PHP připojení k MS SQL přes ODBC na VirtualBoxu
« Odpověď #5 kdy: 17 Června 2009, 21:12:49 »
jo přesně to to znamená, buď je tam FW, nebo neposlouchá na všech síťových zařízeních
můžeš si udělat most z netcatu (jeden jako listen -l) a na druhý posílat
nebo upravit nastavení ** SQL (nebo to nepoužívat)

Henrynr

  • Aktivní člen
  • *
  • Příspěvků: 366
Re: PHP připojení k MS SQL přes ODBC na VirtualBoxu
« Odpověď #6 kdy: 19 Června 2009, 00:14:13 »
Tak jsem si ve VirtualBoxu vytvořil další počítač (WindowsXP) v síti. Z toho se bez problémů na MS SQL připojím (přes MS SQL Management Studio) a taky si můžu na tomto stroji vytvořit ODBC zdroj dat.
Z toho jasně vyplývá, že MS SQL server poskytuje svoji službu v síti.

Nicméně jsem si všimnul, že když se připojuju, tak nikde nezadávám IP adresu, ale ten podivnej název serveru, konkrétně:
Citace
HENRY/SQLEXPRESS
, kde "HENRY" je název počítače.

Jak ale vytvořit ODBC zdroj dat v Ubuntu?   ???
Doma i v práci Linux Mint 17

 

Provoz zaštiťuje spolek OpenAlt.