Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z połączeniem przez PDO
BlueMan
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2003
Skąd: Sosnowiec

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kayman
post
Post #2





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


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.  
Go to the top of the page
+Quote Post
BlueMan
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2003
Skąd: Sosnowiec

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


Byłbym zaskoczony jeśli chodziłoby tylko o port (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)

Problem był mocno trywialny, ale jednak podchwytliwy (IMG:style_emoticons/default/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.

Ten post edytował BlueMan 24.10.2014, 17:15:02
Go to the top of the page
+Quote Post
diodadioda
post
Post #4





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 16.06.2014

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


A uprawnienia użytkownika sprawdzales Może ustalony masz dla niego dostęp tylko z konkretnego IP
Go to the top of the page
+Quote Post
Armstrong
post
Post #5





Grupa: Zarejestrowani
Postów: 200
Pomógł: 40
Dołączył: 26.08.2009
Skąd: Kobiernice

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


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.

Ten post edytował Armstrong 24.10.2014, 17:13:05
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.09.2025 - 14:11