Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Łączenie się z bazą danych z innych hostów
Piro
post 12.06.2010, 14:29:17
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 5.07.2008

Ostrzeżenie: (0%)
-----


Witam,

Robię coś w rodzaju jednej bazy danych z której będę sobie pobierał informacje na kilka strona (strony na różnych serwerach). Mam problem z nadaniem uprawnienia dostępu do bazy danych. Dałem takie uprawnienia przy tworzeniu użytkownika oraz edytowałem plik my.conf:

[MYSQL] pobierz, plaintext
  1. # security:
  2. # using "localhost" in connects uses sockets by default
  3. #bind-address = 127.0.0.1
  4. skip-external-locking
[MYSQL] pobierz, plaintext


próbowałem też bez 'skip-external-locking' ale nadal nie można połączyć się z bazą danych z zewnątrz (z localhosta działa).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
Mchl
post 12.06.2010, 14:55:29
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


Większość hostingów ma zablokowaną możliwość łączenia się z bazą z zewnątrz.
Go to the top of the page
+Quote Post
Piro
post 12.06.2010, 16:36:10
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 5.07.2008

Ostrzeżenie: (0%)
-----


Ale to jest serwer prywatny (fizyczny).

Ten post edytował Piro 12.06.2010, 16:38:52
Go to the top of the page
+Quote Post
Mchl
post 12.06.2010, 16:47:49
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


To na początek sprawdź, czy masz port MySQL (domyślnie 3306) odblokowany wszędzie.
Go to the top of the page
+Quote Post
Piro
post 12.06.2010, 16:56:08
Post #5





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 5.07.2008

Ostrzeżenie: (0%)
-----


Oczywiście port 3306 jest otwarty.

PS cały nmap:
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
445/tcp filtered microsoft-ds
3306/tcp open mysql


Ten post edytował Piro 12.06.2010, 17:03:11
Go to the top of the page
+Quote Post
Mchl
post 12.06.2010, 17:02:48
Post #6





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


Jak próbujesz się łączyć to MySQL odpowiada cokolwiek, czy nic?
Go to the top of the page
+Quote Post
Piro
post 12.06.2010, 17:08:29
Post #7





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 5.07.2008

Ostrzeżenie: (0%)
-----


"Lost connection to MySQL server at 'reading initial communication packet', system error: 110 in ..."
Go to the top of the page
+Quote Post
Mchl
post 12.06.2010, 17:26:20
Post #8





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


A spróbuj ustawić
Kod
bind-address = localhost
Go to the top of the page
+Quote Post
Piro
post 12.06.2010, 17:31:47
Post #9





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 5.07.2008

Ostrzeżenie: (0%)
-----


Nadal działa tylko na localhost.
Go to the top of the page
+Quote Post
Mchl
post 12.06.2010, 17:45:18
Post #10





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


A jak zamiast localhost wpiszesz pełną nazwę zwojego serwera?
Go to the top of the page
+Quote Post
Piro
post 12.06.2010, 17:48:42
Post #11





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 5.07.2008

Ostrzeżenie: (0%)
-----


Wpisywałem (ip) ale nic z tego. Próbowałem też wpisać adres serwera na którym jest strona łącząca się z bazą ale nadal nie działa.
Go to the top of the page
+Quote Post
vokiel
post 12.06.2010, 22:03:27
Post #12





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Aby można było podłączyć się do serwera z zewnątrz trzeba
1. Bindować na konkretnego hosta (lub IP)
2. Mieć to ip lub domenę ustawioną na stałe (static IP)
3. Zezwolić dla konkretnego użytkownika łączenie się z poza localhost (uzytkownik@% - z każdego hosta)

Jeśli masz zmienne IP, to po logowaniu do systemu trzeba pewnie zrestartować demona mysql


--------------------
Go to the top of the page
+Quote Post
Piro
post 12.06.2010, 23:41:44
Post #13





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 5.07.2008

Ostrzeżenie: (0%)
-----


Ustawiłem:

  1. bind-address = ip_serwera_strony


ale nadal nie chce się połączyć.

Na wszystkich hostach mam stałe IP. Posiadam użytkownika ustawionego na user@%. Już naprawdę nie mam pomysłów co z tym zrobić.
Go to the top of the page
+Quote Post
vokiel
post 13.06.2010, 11:15:16
Post #14





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Błąd pojawia się jak się łączysz ze skryptu, czy jakimś programem (np.: SQLyog)? Firewall mówisz odblokowany?

Może w ogóle zakomentuj w my.cnf linię z bindowaniem na adres ip.

Może sprawdź połączenie przez telnet, żeby sprawdzić, czy w ogóle da się dostać do serwera z zewnątrz
Kod
telnet mysql_server 3306


Może to pomoże: http://www.bramschoenmakers.nl/en/node/595
Możesz też sprawdzić, czy host nie jest zablokowany w /etc/hosts.deny


--------------------
Go to the top of the page
+Quote Post
Piro
post 13.06.2010, 14:36:07
Post #15





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 5.07.2008

Ostrzeżenie: (0%)
-----


Jesteś Wielki! Błąd był w hosts.allow i w hosts.deny. Naprawdę wielkie dzięki za ten link.

PS "Wielki powinienem napisać CapsLockiem ale nie wiem jak to może być odebrane przez administracje

Ten post edytował Piro 13.06.2010, 14:44:09
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 14:04