Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z połączeniem przez PDO
Forum PHP.pl > Forum > Bazy danych > MySQL
BlueMan
Mam dziwny problem z podłączeniem się do bazy danych... .

Serwer bazy danych znajduje się w sieci lokalnej i ma IP 192.168.0.10.
Komputer na którym mam serwer Apache z PHP ma IP 192.168.0.19

Problemem jest to, że PDO z jakichś niewiadomych przyczyn wykonuje dziwne przekierowanie pod IP z którego zostało wykonane.
  1. $dsn = 'mysql:host=192.168.0.10;dbname=kiedykupic_baza';
  2. $username = 'kiedykupic';
  3. $password = 'ZUpCj8QZDm';
  4.  
  5. $t = new PDO($dsn, $username, $password);

Cytat
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'kiedykupic'@'192.168.0.19' (using password: YES)'

To samo się dzieje jak z linii komend próbuje się połaczyć
Kod
$ mysql -h 192.168.0.10 -u kiedykupic -p kiedykupic_baza
Enter password:
ERROR 1045 (28000): Access denied for user 'kiedykupic'@'192.168.0.19' (using password: YES)


Ale... jak w przeglądarce normalnie wpisze adres IP http://192.168.0.10/ to pojawia mi się prawidłowa strona apache tamtego serwera (na serwerze mysql także jest Apache).


Co jest nie tak? Gdzie szukać problemu?
Najpierw myślałem, że to iptables, ale tam jest czysto
Kod
$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
kayman
dodaj port w połączeniu -> port = 3306 czy jaki tam masz

  1.  
  2. $this->db = new \PDO('mysql:host=' . DB_HOST . ';port=' . DB_PORT . ';dbname=' . DB_DATABASE, DB_USER, DB_PASS);
  3.  
BlueMan
Byłbym zaskoczony jeśli chodziłoby tylko o port wink.gif Niestety - to nie to.

Z innego komputer z tej sieci lokalnej mogę się podłączyć (przez MySQL Workbench) pod tą bazę danych.


-- edit
Mam rozwiązanie smile.gif

Problem był mocno trywialny, ale jednak podchwytliwy wink.gif
Użytkownik mysql kiedykupic miał ustawione odpowiednie uprawnienia dostępu zdalnego, ale... miał inne hasło niż użytkownik kiedykupic z dostepem po localhost.
Więc jak przez localhost mysql probówałem zalogować się od bazy danych, to logowanie było udane - byłem więc pewien że hasło jest prawidłowe... . A tu taki psikus.
diodadioda
A uprawnienia użytkownika sprawdzales Może ustalony masz dla niego dostęp tylko z konkretnego IP
Armstrong
Jeżeli jesteś pewien hasła, jako administrator bazy dodaj granta dla tego ip:
  1. GRANT ALL privileges ON kiedykupic_baza.* TO kiedykupic@'192.168.0.19' IDENTIFIED BY 'ZUpCj8QZDm';


Dodam tylko iż nie zalecane jest dawać wszystkich przywilejów użytkownikowi do bazy na produkcji.
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.