Piro
12.06.2010, 14:29:17
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:
# security:
# using "localhost" in connects uses sockets by default
#bind-address = 127.0.0.1
skip-external-locking
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
12.06.2010, 14:55:29
Większość hostingów ma zablokowaną możliwość łączenia się z bazą z zewnątrz.
Piro
12.06.2010, 16:36:10
Ale to jest serwer prywatny (fizyczny).
Mchl
12.06.2010, 16:47:49
To na początek sprawdź, czy masz port MySQL (domyślnie 3306) odblokowany wszędzie.
Piro
12.06.2010, 16:56:08
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
12.06.2010, 17:02:48
Jak próbujesz się łączyć to MySQL odpowiada cokolwiek, czy nic?
Piro
12.06.2010, 17:08:29
"Lost connection to MySQL server at 'reading initial communication packet', system error: 110 in ..."
Mchl
12.06.2010, 17:26:20
A spróbuj ustawić
Kod
bind-address = localhost
Piro
12.06.2010, 17:31:47
Nadal działa tylko na localhost.
Mchl
12.06.2010, 17:45:18
A jak zamiast localhost wpiszesz pełną nazwę zwojego serwera?
Piro
12.06.2010, 17:48:42
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
12.06.2010, 22:03:27
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
12.06.2010, 23:41:44
Ustawiłem:
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
13.06.2010, 11:15:16
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/595Możesz też sprawdzić, czy host nie jest zablokowany w /etc/hosts.deny
Piro
13.06.2010, 14:36:07
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.