Sieć i MySQL

1

Mam sieć domową z dwoma komputerami. Na jednym jest zainstalowany serwer MySQL. Jak uzyskać dostęp do bazy serwera z drugiego komputera?

1

normalnie. Może tak napiszesz co z łaski swojej próbowałeś zrobić, gdzie szukałeś rozwiązania problemów, które wystąpiły i z czym sobie nie poradziłeś. prostytutka czy wszystkie twoje pytania muszą być takie z d**y? Czy nie potrafisz chociaż raz zadać pytanie POPRAWNIE?

0

Jeśli oba komputery są faktycznie w jednej sieci i się widzą (np. pingują się) to musisz tylko odblokować odpowiednie porty na firewallu

0
Shalom napisał(a)

Jeśli oba komputery są faktycznie w jednej sieci i się widzą (np. pingują się) to musisz tylko odblokować odpowiednie porty na firewallu

Dzięki.
To, że są w sieci to jest pewne. Al zastanawia mnie najbardziej sposób w jaki mogę dostać się do bazy. Na komputerze gdzie mam zainstalowany MySQL mogę otworzyć command line client i wpisać odpowiednie zapytanie a jak to zrobić z drugiego komputera? Na serwerze nie mam ustawionych żadnych kont użytkownika i hasła: User_Name to root a HostName to localhost.

0

Jeśli o to chodzi to musisz użyć jakiegoś klienta jak na przykład phpMyAdmin czy Oracle SQLDeveloper (wydaje mi się ze da się go podpiąć do mySQL). Poszukaj w google.

0
Shalom napisał(a)

Jeśli o to chodzi to musisz użyć jakiegoś klienta jak na przykład phpMyAdmin czy Oracle SQLDeveloper (wydaje mi się ze da się go podpiąć do mySQL). Poszukaj w google.

A jak ten sposób połączyć z programem? Łączę się z bazą za pomocą DBExpress:

SQLConnection1->Connected = true;

DriverName=MySQL
HostName=localhost
Database=skladcelny
User_Name=root
Password=
ServerCharSet=
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Compressed=False
Encrypted=False
ConnectTimeout=60

0

Pytanie z d**y, jak to ujął Misiekd, ale odpowiem.

  1. @Shalom, żeby użyż phpMyAdmin musi mieć jakiś serwer webowy z PHP na pokładzie. Apache + PHP albo jakiś zestaw WAMP, LAMP - nie wiem jaki ma OS. w pma trzeba w konfiguracji pozwolic na łaczenie z innymi niż localhost serwerami MySQL. Dodać sobie IP z portem serwera docelowego.

  2. Na tym drugim kompie w konfiguracji mysql (my.ini) musisz pozwolić na łączenie z innych hostów niż localhost. Sprowadza się to do wyłączenia bindowania ip 127.0.0.1. Na koniec musisz nadać prawa dostepu jakiemuś użytkownikowi do konkretnej bazy danych oraz dodac regułki do wszelkiej masci firewalli, żeby przepuszczały.

To sa kroki niezbedne, tylko po co je wykonywać jak możesz zainstalowac gotowy pakiet jakim jest XAMPP czy podobny i nie martwić się reszte - to działa od razu, zwłaszcza że nie masz żadnej wiedzy z tematu konfiguracji bazy danych i połaczenia z nią. Wnioskuje to po zadanym pytaniu.

Co do klientów to obok PMA jest coś takiego jak MySQL Workbench, ale nie zadziała jesli nie wykonasz kroku 2., czyli nie pozwolisz na dostep z zewnątrz.

0

Sprecyzuje więc swoje pytanie.
Na kompie lokalnym mam MySQL z bazą. Mam prosty napisany przez siebie program, który pracuje na tej bazie. Program jest napisany z użyciem DBExpress. Łączę się z bazą tak:

SQLConnection1->Params->Strings[1] = "HostName=localhost";
SQLConnection1->Params->Strings[2] = "Database=skladcelny";
SQLConnection1->Params->Strings[3] = "User_Name=root";
SqlConnection1-> Connected = true;
SQLQuery1->CommandText = "SELECT * FROM SKLAD";
SQLQuery1->ExecSQL(true);
ClientDataSet1->Active = true;
DBAdvGrid1->DataSource = DataSource1;

Teraz chciałbym używać swojego programu na drugim kompie. Konfiguracja komputerów jest taka: Komputery widzą się wzajemnie w sieci i widzą serwer główny poprzez , który mogą dzielić się plikami. Serwer MySQL zainstalowany jest tylko na jednym komputerze.
Czy w obrębie tego kodu a dokładnie trzech pierwszych parametrów jestem w stanie połączyć z bazą z drugiego kompa? Czy wystarczy zmienić "HostName" na jakiś adres?. Jak mam udostępnić program na drugim komputerze? Czy poprzez zwykły skrót? Jak program ma rozpoznać z którego komputera przychodzi zapytanie o połączenie? Próbowałem umieścić program na serwerze głównym i dodać skrót na drugim kompie. Oczywiście bzdura.

0
  1. na pewno musisz zmienić hosta na adres IP drugiego kompa
  2. na firewallu musisz otworzyć na świat port na którym się łączysz z tą bazą (który? sprawdź w dokumentacji DBExpress zapewne)
1

kolejny agent... brakuje Ci podstaw, przez co nie rozumiesz odpowiedzi na zadane pytania. to są podstawy opisane w tysiącach miejsc w internecie i to po polsku.
zamiast localhost wpisz ip komputera, na którym jest uruchomiona baza. program skopiuj na drugi komputer i tam uruchom. jeśli się nie połączy, to sprawdź, czy serwer mysql nasłuchuje na 127.0.0.1 (źle), czy 0.0.0.0 (dobrze), ewentualnie ip.komputera.w.sieci (bardzo dobrze). sprawdzisz to w jego konfiguracji, ewentualnie możesz spróbować połączyć się telnetem na adres serwera (port 3306), podpowiem: telnet 192.168.0.1 3306.

1
ŁF napisał(a)

kolejny agent... brakuje Ci podstaw, przez co nie rozumiesz odpowiedzi na zadane pytania. to są podstawy opisane w tysiącach miejsc w internecie i to po polsku.
zamiast localhost wpisz ip komputera, na którym jest uruchomiona baza. program skopiuj na drugi komputer i tam uruchom. jeśli się nie połączy, to sprawdź, czy serwer mysql nasłuchuje na 127.0.0.1 (źle), czy 0.0.0.0 (dobrze), ewentualnie ip.komputera.w.sieci (bardzo dobrze). sprawdzisz to w jego konfiguracji, ewentualnie możesz spróbować połączyć się telnetem na adres serwera (port 3306), podpowiem: telnet 192.168.0.1 3306.

Brakuje mi podstaw i wcale tego nie ukrywam. I dlatego irytują mnie odpowiedzi typu: "...PHP na pokładzie. Apache + PHP albo jakiś zestaw WAMP, LAMP", "...Sprowadza się to do wyłączenia bindowania ip 127.0.0.1." itp. Rozumiem, że wszyscy są bardzo mądrzy i starają się to okazać.
Jak mam sprawdzić adres ip? W wierszu poleceń? Jak sprawdzic czy serwer "nasłuchuje"? Jak połączyc się z telnetem? Czy to w linii komend?

0

@duf a nas irytują takie lenie jak ty. Nie wiesz jak coś zrobić? Sprawdź! Poszukaj! Poczytaj! A dopiero jak po całym dniu poszukiwań okaże się że się nie powiodło to dopiero napisz...
Czego ty oczekujesz? Że będziemy tutaj na twoje zawołanie pisać poradnik z serii: "Aby zainstalować klienta bazy danych musisz wejść na stronę X, kliknać w link Y, ściągnąć plik Z, następnie uruchomić instalator i z pierwszego ekranu wybrać opcję "next"..." i jeszcze najlepiej z obrazkami?..
(A ty zaraz zapytasz jeszcze "jak mam wejść na stronę X", bo wiecie, mam pewne braki i nie wiem jak to się robi. A potem "co to jest przeglądarka internetowa?" itd)
http://lmgtfy.com/?q=Jak+mam+sprawdzi%C4%87+adres+ip
http://lmgtfy.com/?q=Jak+sprawdzic+czy+serwer+mySQL+nas%C5%82uchuje
http://lmgtfy.com/?q=jak+po%C5%82%C4%85czy%C4%87+si%C4%99+z+telnetem

0

użyj google!
poszukaj pliku konfiguracyjnego, otwórz go w notatniku, zmień w nim wszystkie wystąpienia 127.0.0.1 na zewnętrzny adres ip serwera. ip sprawdzisz w linii poleceń przez ipconfig (start -> run -> wpisz cmd -> enter -> wpisz ipconfig -> enter, adres ip to będą cztery liczby oddzielone trzema kropkami).
myśl człowieku, brak wiedzy nie zwalnia od używania mózgu. wszystko o co pytasz jest do znalezienia przez google i to w dodatku po polsku.

0

Masz dostęp do internetu, czyli masz dostęp do googli. Nawet jak komuś by się chciało napisać Ci dokładnie co masz zrobić krok po kroku, to i tak niewiele Ci z tego przyjdzie. Jeżeli czegoś nie rozumiesz to sprawdź to na wiki/ w dokumentacji. W dwa dni spokojnie powinieneś sobie z tym poradzić nawet nie mając teraz o tym pojęcia, musisz się po prostu nauczyć korzystać z wyszukiwarki i włożyć w to trochę pracy.

0
ŁF napisał(a)

użyj google!
ip sprawdzisz w linii poleceń przez ipconfig (start -> run -> wpisz cmd -> enter -> wpisz ipconfig -> enter, adres ip to będą cztery liczby oddzielone trzema kropkami).

C:\Documents and Settings\Administrator>ipconfig
Nazwa ipconfig nie jest rozpoznawalna jako polecenie wewnętrzne lub zewnetrzne, program wykonywalny lub plik wsadowy
IP znalazłem w połączeniach lokalnych.

1

oprócz odblokowania portu 3306 powinieneś jeszcze zwrócić uwagę na to, że przy standardowej instalacji MySQL użytkownik root może się łączyć do serwera tylko z komputera, na którym zainstalowana jest baza danych (localhost lub 127.0.0.1). Dlatego też należy albo zezwolić użytkownikowi root na logowanie się w sieci (nie zalecane) lub utworzyć nowego użytkownika i nadać mu uprawnienia do dostępu do tej bazy danych (polecenie GRANT).

0
ŁF napisał(a)

kolejny agent... brakuje Ci podstaw, przez co nie rozumiesz odpowiedzi na zadane pytania. to są podstawy opisane w tysiącach miejsc w internecie i to po polsku.
zamiast localhost wpisz ip komputera, na którym jest uruchomiona baza. program skopiuj na drugi komputer i tam uruchom. jeśli się nie połączy, to sprawdź, czy serwer mysql nasłuchuje na 127.0.0.1 (źle), czy 0.0.0.0 (dobrze), ewentualnie ip.komputera.w.sieci (bardzo dobrze). sprawdzisz to w jego konfiguracji, ewentualnie możesz spróbować połączyć się telnetem na adres serwera (port 3306), podpowiem: telnet 192.168.0.1 3306.

W konfiguracji pliku my,ini jest zapis:
The TCP/IP Port the MySQL Server will listen on port=3306
Skopiowałem program na drugi komputer. Podczas łączenia z bazą z drugiego kompa dostaję komunika o odmowie dostępu dla użytkownika jacek@10.120.120.184. podczas gdy IP komputera lokalnego na którym zainstalowany jest serwer to 10.120.120.11. Konto użytkownika założyłem używając IP komputera lokalnego. Skąd to IP 10.120.120.184?

IP 10.120.120.184 to IP komputera na który skopiowałem program.

Wpisałem w wyjątkach FireWall port 3306 w drugim komputerze ale jest takia komunikat podczas próby połączenia z serwerem:
Host 10.120.120.184 nie ma uprawnień do połączenia się z MySQL serwer

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.