[Delphi.NET+ MySQL] Łącznie się z innego kompa

[Delphi.NET+ MySQL] Łącznie się z innego kompa
RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0

Mianowicie napisałem aplikację która umieszcza pewne informacje i pliki w bazie danych.
Wszystko niby działa, przy budowaniu aplikacji wykorzystałem komponenet dbexpress i logowałem sie na hosta 127.0.0.1.
Problem pojawił się gdy chciałem połączyć się z bazą przy pomocy aplikacji z innego kompa. Wpisywałem Hosta jakie IP ma komp na którym jest baza lecz nie mogłem się zalogować.
Pewno coś muszę zrobić ale co??

;-P Wiem że to straszne lamerstwo , ale pomóżcie :-P

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0
  1. firewall
  2. ustawienia mysqla (czy pozwala na logowanie z poza localhost)

jaki komunikat?

RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0

Firewall odpada a co do ustawień MySQLa to sprawdzę.
Komunikatu nie zanm bo aplikacja w wypadku błędu logowania wysyła własny komunikat.

spc
  • Rejestracja: dni
  • Ostatnio: dni
0

A kompy sa w jednej podsieci? Nie ma jakiegos NAT-a po drodze?

RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0

W utsawienich MySQLa wszystko gra. Firwall wyłączony na Local, NATa NIE MA. Hmm

Może powinien mieć coś udostępnione z katalogu MySQLa??

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

To sprawdz telnetem czy mozesz sie polaczyc z portem MySQL z tego drugiego kompa - czy w ogole cos jest widoczne, czy jest to wina raczej aplikacji.

RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0
johny_bravo napisał(a)

To sprawdz telnetem czy mozesz sie polaczyc z portem MySQL z tego drugiego kompa - czy w ogole cos jest widoczne, czy jest to wina raczej aplikacji.

A jak to się robi [???] tak mniej więcej

Już mam, wpisałem
o 192.168.1.141 [3306]
i niestety Conecting to 192.168.1.141...Could not openconnection to the host, on port [3306]:Connect failed

Co mam źle skonfigurowane??

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

Sprawdz czy na localhoscie zadziala telnet na tym samym porcie. Jak nie, to na 99% firewall, sprawdz jeszcze raz.

RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0

sprawdziłem też na localhoscie z wyłączonym całkowicie firewallu i to samo

a gdy przy MySQL administrator loguję sie na 192.168.1.141 lub w aplikacji na moim kompie to logowanie bez problemu.

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

No to najwyrazniej masz ustawiony inny port, skoro tamte dzialaja, a telnet na tym konkretnym nie odpowiada. Sprawdz jaki port i sprobuj jeszcze raz telnetami podzialac.

RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0

Wiem że to cokolwiek dziwne jest , ale port na 100% 3306

Nie wiem już nic :|

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

Jezeli jest taki sam, to telnet chyba nie ma wyjscia, musi sie polaczyc - niech mnie ktos poprawi, jesli nie mam racji.
Dlatego stawiam na ten port. Z czego wnosisz, ze na 100% jest 3306?

RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0

Mam zainstalowane MySql GUI tools i w ustawieniach mam TCP Port: 3306,
w my.ini:
[client]

port=3306

I jak loguję się w MySQL administrator na innym porcie niż 3306 to się nie loguję.

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

No to ja sie poddaje - nie wiem.

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0
  1. a masz odpowiedznią biblitekę do dbexpress na tym innym kompie?
  2. (bo się pogubiłem :p) na localu łączy się Twój program?
    jeśli 2 tak to
    a) na localu wpisz jako adres 127.0.0.1 i zobacz czy się połączy
    a) na localu wpisz jako adres faktyczny adres i zobacz czy się połączy
RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0
  1. a masz odpowiedznią biblitekę do dbexpress na tym innym kompie?
  2. (bo się pogubiłem :p) na localu łączy się Twój program?
    jeśli 2 tak to
    a) na localu wpisz jako adres 127.0.0.1 i zobacz czy się połączy
    a) na localu wpisz jako adres faktyczny adres i zobacz czy się połączy
  1. kompliowałem z bibliotekami bez nic chyba by się nieuruchomił ale sprawdzę
  2. w aplikacji i przy MySQL administrator loguje się na localu i przy 127.0.0.1 i 192.168.1.141 na porcie 3306 bez problemów. Ale przez Telnet nie.
Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0

nie wiem jak w .NET ale zwykłe Delphi potrzebuje jeszcze jakiejś dllki do poprawnego działania dbx'a

RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0
Misiekd napisał(a)

nie wiem jak w .NET ale zwykłe Delphi potrzebuje jeszcze jakiejś dllki do poprawnego działania dbx'a

A pamiętasz jakie??

A ha zapomniałem dodać że na kompie z bazą jest XP 64-bit - mam nadzieję że to nie winda psuje to wszystko :-/

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0

nie wiem, zobacz czy masz u siebie którąś z tych
dbexpmysql.dll
dbexpmys.dll
LIBMYSQL.dll
dbx4mysql.dll

RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0

Witam nie pisałem bo miałem straszny kocioł w pracy, ale mam nadzieje że jeszcze ktoś mi pomoże.
Usunołem obsługę błedu przy logowaniu i teraz wiem że komunikat błędu to:
Misssing DriverName property

Trochę nierozumiem bo podczas logowania taki parametr podaję:

Kopiuj
  MySQLDataSetForm.SQLConnection.DriverName := 'MySQL Direct (Core Lab)'; // 'MySQL Direct by Core Lab' - for Delphi 2006 or Turbo products
  MySQLDataSetForm.SQLConnection.LibraryName := 'dbexpmda.dll'; 
  MySQLDataSetForm.SQLConnection.VendorLib := 'not used';
  MySQLDataSetForm.SQLConnection.GetDriverFunc := 'getSQLDriverMySQLDirect';
  MySQLDataSetForm.SQLConnection.Params.Clear;
  MySQLDataSetForm.SQLConnection.Params.Add('User_Name='+lbeUser.Text);
  MySQLDataSetForm.SQLConnection.Params.Add('Password='+lbePassword.Text);
  MySQLDataSetForm.SQLConnection.Params.Add('HostName='+lbeHost.Text+':3306');
  MySQLDataSetForm.SQLConnection.Params.Add('DataBase=doktech');
  MySQLDataSetForm.SQLConnection.Params.Add('DriverName=MySQL Direct by Core Lab');
  MySQLDataSetForm.SQLConnection.ParamsLoaded := true; 
  MySQLDataSetForm.SQLConnection.Connected := true;

Logowane na lokalu jest bez komunikatu [???]

Czy muszę coś jescze ustawić w SQLConnection??

routex
  • Rejestracja: dni
  • Ostatnio: dni
0
  1. Firewall i możliwość łączenia się z portem 3306 (lub inny, na którym pracuje mysql)
  2. w pliku konfiguracyjnym usuń linijkę: skip-networking
RudyBestyj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0

Problemem okazało się bark plików:

Kopiuj
dbxconnections.ini
dbxdrivers.ini

Co należy zrobić by nie trzeba było udostępniać tych plików z aplikacją??

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0

poczytaj http://www.ai.komisauto.pl/index.php?option=content&task=view&id=36 od akapitu Komponent TSQLConnection

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.