Podłączenie się pod serwer MSSQL z Linuxa

0

Witam,
Mam Linuxa (Sabayon, jeśli to ma znaczenie), na nim zainstalowany WINE.
W WINE zainstalowałem pewien program (nie mój), który łączyć się powinien z bazą MS SQL, która postawiona jest na innym komputerze (z systemem Windows Server 2008 R2). Wersja bazy: 2008.
Program udało się uruchomić. Problem jednak jest taki, że nie chce się połączyć z serwerem. Na Windowsie jest ok. Czy wpiszę hostname, czy IP i tak nie chce się podłączyć do bazy. Ten sam problem wystepuję gdy w swoim programie próbuję się podłączyć pod ten sam serwer. Pingi dochodzą (po wpisaniu IP, hostname nie jest rozpoznany).
Poinstalowałem niezbędne sterowniki, takie jak mdat (poprzez winetrick), SQL Server Native, ODBC Drivers, Secur32, itp. Nadal nic.
Ponoć Windows Server 2008 nie lubi się z Linuxami, jeśli chodzi o udostępnianie plików, ale czy może mieć to wpływ na bazę SQL?
Może ktoś spotkał się z tym problemem? Może coś pominąłem, a że piątek, robota od rana do wieczora, to i myślenie powoli siada :)
Z góry dzięki za pomoc, pozdrawiam
AW

ps. sieć lokalna

0

Sprawdź komunikaty w konsoli, może będzie tam coś, co naprowadzi na rozwiązanie. Aczkolwiek może być tak, że nic nie da się zrobić.

0

Zależy "czego" używasz w tym programie do łączenia się z mssql serverem. Jeśli działasz na FreeTDS - ie to wraz z nim masz zainstalowany program tsql. Możesz najpierw sprawdzić, czy możesz się połączyć tsqlem z db. Inna opcja to zapuszczenie procesu łączącego się z db w gdb i obserwowanie co się pierniczy.

0

Mój program, do sprawdzenia, napisany na szybko w C# przy użyciu standardowych bibliotek.
Co zaś tyczy się konfiguracji Wine, próbowałem już różnych metod.
Obecnie instaluję od nowa wszystko, bo coś namieszałem przy zmianach owej konfiguracji. Z tym FreeTDS próbowałem, ale spróbuję raz jeszcze.
A co do konsoli.. to nie wypluwa nic konkretnego, no może oprócz CLSCX_SERVER_REMOTE (coś takiego, podobnego) w programie docelowym.
Dzięki, powalczę jeszcze.

0

Do C# potrzebujesz Mono, ale najlepiej zainstalować .net framework przez winetricks. I uruchamiaj ten program na innym prefiksie wine.

0

Tak wiem. Staram się:) Winetrick mieli zgrabnie :)
Generalnie wszystko chodzi dobrze, nie ma problemów z działaniem programu, tylko nie widzi w ogóle serwera SQL (net chodzi).
Wyczytałem, że problemem może być też sama wersja winetricks, która w starszej wersji coś źle instalowała w związku z dotNET. Trwa więc update, mam nadzieję, że pomoże.

0

Masz na myśli firewall na linuxie? nie, wyłączyłem nawet.
Na serwerze? Raczej nie, inne komputery z Windowsa łączą się bez problemu, także moje programiki są w stanie wyciągać dane z tej bazy.

Co do telnet, jeszcze nie :)

A błędy.. obecnie stanęło na czymś takim:

fixme:oledb:datainit_GetDataSource (0x1bfa50)->((nil) 23 L"Provider= .... tajne przez poufne :P ...." {0c733a8b-2a1c-11ce-ade5-00aa0044773d} 0x6350ae4)
fixme:oledb:datainit_QueryInterface interface {2c7a8261-ccd3-11d1-ade2-00a0c9055d8f} not implemented
fixme:oledb:dbprops_SetProperties (0x1b19b8)->(1 0x32ca8c)
err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111
err:ole:CoGetClassObject no class object {c8b522cf-5cf3-11ce-ade5-00aa0044773d} could be created for context 0x1

Doinstalowałem winhttp i inne duperele, a także wgrałem ręcznie najnowszego 'wine', ale widzę, że jakiś błąd z ole(db). Hm...

//edit:
Telnet mówi: Connected

0

Najbardziej niepokojące jest to:

fixme:oledb:datainit_QueryInterface interface {2c7a8261-ccd3-11d1-ade2-00a0c9055d8f} not implemented
fixme:oledb:dbprops_SetProperties (0x1b19b8)->(1 0x32ca8c)

A na sam koniec, nic nie wyszło:

err:ole:CoGetClassObject no class object {c8b522cf-5cf3-11ce-ade5-00aa0044773d} could be created for context 0x1

Jak coś jest "not implemented" to z reguły nie może działać. Weź pod uwagę, że wine nie wszystko obsługuje jeszcze, tak jak na samym początku napisałem możliwe jest i to, że nic nie da się zrobić. Od samego początku masz zresztą "fixme" czyli nic w sumie nie działa.

Możesz jeszcze zapytać na forum wine, ale ja bym tu nie był optymistą.

0

Udało się odpalić FreeTDS i połączył się z bazą .... ale tylko jeśli zaloguję się na root :/
Za pierwszym razem nie dodałem parametru --with-tdsver=8.0 i teraz w normalnym użytkowniku, przy wpisaniu tsql -C wywala TDS version = 5.0, czyli wartość domyślną. Mimo ponownej poprawnej kompilacji i instalacji, dalej widnieje 5.0. Wie ktoś może które pliki przenieść czy zwykł user też widział odpowiednią konfigurację? Gdzie to może siedzieć? Tudzież jak to zainstalować, by wskoczyło do normalnego usera poprawna wersja. Jak mówię, root łączy się bez problemu z bazą, ale nie chce na nim odpalać wine, wiadomo. Pomożecie? :)
- udało się.. nevermind

ps. co ciekawe, po uruchomieniu wine odbcad32 jako zwykł user, test połączenia się wywala pokazując tylko błąd SSL..

Linux więc widzi SQL. Ale program przez wine dalej nie. nie wiem, czy to kwestia sterowników, nieobsługujących SSL, czy jeszcze czego innego. Zaczyna mnie to powoli męczyć :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1