ugrás a tartalomhoz

PostgreSQL nem connectel

csigafattyu · 2011. Május. 13. (P), 02.02
Üdv! Ringyóz alatt szenvedek a PostgreSQL életre lehelésével. A PHPpgAdmin remekül látja, tudok mindenfélét csinálni benne. Viszont ha azt mondom PHP-ban, hogy:

$dbconn = pg_connect('host=localhost port=5432 user=postgres password=postgres dbname=proba');

akkor semmi sem történik, a $dbconn értéke false, vagyis nem sikerült. A pg_last_error() üres stringet ad. Akkor is ez az eredmény, ha localhost helyett 127.0.0.1-et írok.

Mit csinálok rosszul? Egyáltalán hol lehet megnézni valami logot, hogy mi nem sikerül?
 
1

A pg_hba.conf-ban mit adtál

kuka · 2011. Május. 13. (P), 09.00
A pg_hba.conf-ban mit adtál meg, milyen kapcsolatokat fogadjon el? Kétféle lehet:
  • Unix socket
  • TCP/IP socket

A te kódod TCP/IP sockethoz próbál kapcsolódni, lehet a phpPgAdmin Unix sockethoz kapcsolódik. (Ha nem adsz meg host értéket vagy Unix socket útvonalát adod meg, akkor kapcsolódik Unix sockethoz.)

Nem értek Windowshoz, ott még nem használtam PostgreSQL-t. Lehet mindez ott nem is érvényes, csak egy elmélkedés volt. Minden esetre ránéznék, hogy várakozik-e valaki a 5432 porton és ha igen, ki.
2

# TYPE DATABASE USER

csigafattyu · 2011. Május. 13. (P), 10.06
# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5
3

Akkor nem jött be a tippem.

kuka · 2011. Május. 13. (P), 10.35
Akkor nem jött be a tippem.
4

Eddig egyetlen tipp sem jött

csigafattyu · 2011. Május. 13. (P), 10.56
Eddig egyetlen tipp sem jött be, amit akárhol találtam. Az 5432-es port figyel, a PG működik, a local portok mind trusted-ra vannak állítva (most már), de az istennek sem akar engedelmeskedni. A PHP error log pedig üres.
5

Sajnos én is csak linuxon

bb0072 · 2011. Május. 13. (P), 12.04
Sajnos én is csak linuxon használtam eddig postgre-t. Ott az sem mindegy, hogy milyen user nevében csatlakozol. Ugyanis a postgre, a mysql-el ellentétben nem kezel saját usereket, hanem az oprendszer usereinek adhatsz ilyen-olyan jogokat. Milyen user nevében fut a php? Kapcsolódhat egyáltalán az a user?

Másik ötletem, hogy talán nincs a php-hez pgsql extension-öd. A pgadmin extension nélkül, valamilyen odbc hívással is tud csatlakozni, azaz lehet, hogy nem is a pg_connect()-et használja. PhpMyAdmin például simán elmegy mysql extension nélkül, ebből gondolom, hogy a pgadmin is megy. Ez megmagyarázza, hogy miért megy a pgadmin, és miért nem megy a pg_connect.
6

Ringyózon a pg installnál kér

csigafattyu · 2011. Május. 13. (P), 17.10
Ringyózon a pg installnál kér usernevet és passwordöt, ami alapesetben postgres/postgres. Kapcsolódhat, mert a PHPpgAdmin is ezzel lép be. A pgsql extension fent van.

Időközben egy hirtelen jött ötletre átállítottam a hibaüzeneteket E_ALL-ra, és hirtelen kiderült, mi a kínja:

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: database "proba" does not exist in C:\apacheroot\postgres\index.php on line 11
fail

Tehát nem látja a scheme-t. De miért?