Ale przy standardowej konfiguracji nie działa (przechwytuje wyjątek z komunikatem SQLSTATE[HY000] [2003] Can't connect to MySQL server on przyklad.pl). Czy zle rozumiem DSN w PDO czy to kwestia skonfigurowania MySQL? Jeśli to drugie to jak to zrobić?
A z poziomu powloki mozesz sie zalogowac do tego serwera MySQL (raczej nie)? - konfiguracja MySQL dopuszcza dostep z innego hosta niz localhost (tez raczej nie, wiec na MySQL dopuszczasz inne polaczenia i juz).
Standardowo mysql5 slucha tylko na interfejsie LO. Przyjrzyj sie plikowi /etc/mysql/my.cnf i poszukaj czegos takiego jak "bind-address" i dopisz adres zewnetrzny. Nie wiem co robic jak masz dynamiczne - zapewne google wie
W mysql4.x byla dyrektywa "skip-networking" czy cos takiego, trzeba bylo zaremowac.
Stawi pisze:Standardowo mysql5 slucha tylko na interfejsie LO. Przyjrzyj sie plikowi /etc/mysql/my.cnf i poszukaj czegos takiego jak "bind-address" i dopisz adres zewnetrzny.
Dzięki to właśnie to :-)
Stawi pisze:Nie wiem co robic jak masz dynamiczne - zapewne google wie ]
Eh, no właśnie o dynamicznym ip nie pomyślałem. Nie potrafię znaleźć rozwiązania. Gdzieś przeczytałem żeby zakomentować bind-addres = 127.0.0.1 ale nic nie pomaga. Drugie rozwiązanie czyli przypisanie ip 0.0.0.0 też nic nie daje. Może ktoś jednak na wiedzę jak to zrobić?
Da się...
Po pierwsze: jeśli dynamiczne ip to no-ip lub dyndns...
Po drugie: dany user musi mieć prawo do łączenia się z innych hostów niż tylko localhost. Ja domyślnie tworzę nowego usera:
grant all privileges on baza.* to 'user'@'localhost' identified by 'haselko'][/quote]
No tak ale celowo na początek łącze się przez roota czyli uprawnienia mam. Po za tym robie identycznie jak na localhoscie, na którym działa. Więc jeśli dobrze główkuję to uprawnienia nie mogą być złe.
[quote="ShinnRa"] no i port 3306 na iptables otwarty tak jak powiedział [b]Yampress[/b].[/quote]
Tak. IPtables specjalnie dla tego eksperymentu jest całkowicie sczyszczony.
diniox pisze:No tak ale celowo na początek łącze się przez roota czyli uprawnienia mam. Po za tym robie identycznie jak na localhoscie, na którym działa. Więc jeśli dobrze główkuję to uprawnienia nie mogą być złe.
no tak ale ta część 'user'@'localhost' ogranicza możliwość łączenia się tylko z localhost. Jak dasz % wtedy dany user będzie sie mógł łączyć z dowolnego hosta.
A o ile ja dobrze pamiętam, to mysql domyślnie pozwala rootowi łączyć się tylko z localhost lub z hosta na którym jest zainstalowany... wejdź w konsolę (tam gdzie masz mysql'a zainstalowanego) i zobacz co Ci zwróci takie zapytanie:
SELECT user, host FROM mysql.user ORDER by user]
mi daje taki wynik:
[code]
+------------+-----------+
| user | host |
+------------+-----------+
| dawid | % |
| db01_user | localhost |
| root | localhost |
| root | rei |
+------------+-----------+
4 rows in set (0.00 sec)
Czyli jedynie user dawid może się łączyć z zewnątrz. root z localhosta i z rei (tak sie nazywa komp gdzie jest zainstalowany mysql) a user db01_user tylko z localhosta....
ShinnRa pisze:no tak ale ta część 'user'@'localhost' ogranicza możliwość łączenia się tylko z localhost. Jak dasz % wtedy dany user będzie sie mógł łączyć z dowolnego hosta.
A o ile ja dobrze pamiętam, to mysql domyślnie pozwala rootowi łączyć się tylko z localhost lub z hosta na którym jest zainstalowany... wejdź w konsolę (tam gdzie masz mysql'a zainstalowanego) i zobacz co Ci zwróci takie zapytanie:
OK po zrobieniu takiego "dawida" wywala mi taki wyjątek:
SQLSTATE[42000] [1044] Access denied for user 'dawid'@'%' to database 'test'
Czyli już jest bliżej ale dalej coś nie gra z uprawnieniami.
[ Dodano: 2008-04-09, 19:11 ]
OK i już doszedłem jak zrobić zeby było dobrze.
Dzięki bardzo za instrukcje.
Podsumowując:
1. z /etc/mysql/my.cnf zakomentować linijke z bind-address 127.0.0.1
2. w mysql dać grant all privileges on baza.* to 'user'@'%' identified by 'haslo';