Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Łączenie się z bazą danych z innych hostów
Forum PHP.pl > Forum > Bazy danych > MySQL
Piro
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).
Mchl
Większość hostingów ma zablokowaną możliwość łączenia się z bazą z zewnątrz.
Piro
Ale to jest serwer prywatny (fizyczny).
Mchl
To na początek sprawdź, czy masz port MySQL (domyślnie 3306) odblokowany wszędzie.
Piro
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
Mchl
Jak próbujesz się łączyć to MySQL odpowiada cokolwiek, czy nic?
Piro
"Lost connection to MySQL server at 'reading initial communication packet', system error: 110 in ..."
Mchl
A spróbuj ustawić
Kod
bind-address = localhost
Piro
Nadal działa tylko na localhost.
Mchl
A jak zamiast localhost wpiszesz pełną nazwę zwojego serwera?
Piro
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.
vokiel
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
Piro
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ć.
vokiel
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
Piro
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.