hi,
so wie es ausschaut ist der postgresql support nicht installiert. bitte den admin deines server die postgresql packete zu installieren. bei debian ubuntu ist das php4-pgsql bzw php5-pgsql...
cu tb.
Hi Leute!
Ich habe vor zwei Tagen mit PostgreSQL und PHP angefangen. Neben dem Manual von PostgreSQL habe ich mir noch ein Buch über PHP und ein Tutorial über PHP und Postgres gegeben ;-)
Tja, aber leider stecke ich derzeit fest und komme einfach nicht weiter.
Ich habe auf dem Server mit PostgreSQL eine kleine Datenbank zum Testen gebaut und würde diese jetzt gerne übers Web (erstmal im LAN) abrufen.
Ich habe:
PostgreSQL 7.4.7
Apache-SSL 1.33
PHP Version 4.3.10-16.
Apache, PostgreSQL und PHP arbeiten an sich einwandfrei.
Mein Problem besteht bereits am Anfang: Ich kann zu der Datenbank keine Verbindung aufnehmen, obwohl die Angaben alle korrekt sind.
Der folgende Php-Code
erzeugt folgenden FehlerCode:<html> <title>Erste Datenbank </title> <body> <h2>Erste Datenbank </h2> <? echo "Test1.. \n"; $host="localhost"; $port="5432"; $user="sqlusr"; $password=""; $dbname="mz"; $connection = pg_connect("dbname=$dbname user=$user host=$host port=$port"); echo "Test2.. \n"; $db=pg_dbname($connection); echo "Test3.. \n"; echo "Name der Datenbank ist $db. \n"; ?> </body> </html>
Ich weiss einfach nicht, woran das liegt. Laut dem Tutorial sollte es mit pq_connect() funktionieren. Es ist doch alles richtig, oder?Code:Erste Datenbank Test1.. Fatal error: Call to undefined function: pg_connect() in /var/www/php5/index.php on line 13
Ich habe es auch mal mit
ausprobiert, aber da kam nicht einmal die Meldung, die in "die(..)" steht.Code:$conn=@pg_connect(...) or die(...);
wird auch nicht ausgeführt.Code:echo "Name der Datenbank ist $db. \n";
Also er kommt erst garnicht so weit :-(
Ich habe noch nachgeguckt (phpinfo) und es sagt:
Wäre jemand von Euch so nett und würde mir helfen?dbx
dbx support enabled
dbx version 1.0.0
supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT
Vielleicht habe ich ja doch was übersehen.
Viele Grüsse
sqlman
Ich habe:
PostgreSQL 7.4.7
Apache-SSL 1.33
PHP Version 4.3.10-16.
hi,
so wie es ausschaut ist der postgresql support nicht installiert. bitte den admin deines server die postgresql packete zu installieren. bei debian ubuntu ist das php4-pgsql bzw php5-pgsql...
cu tb.
Hi Xandrian!
Ja in der Tat. Jetzt bekomme ich andere Fehlermeldungen - aber es klappt!
>> Vielen herzlichen Dank !! <<![]()
und viele Grüsse!
sqlman
Jetzt sagt er:
Dabei habe ich doch mitCode:Erste Datenbank Test1.. Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: IDENT authentication failed for user "sqlusr" in /var/www/php5/index.php on line 16 Test2.. Warning: pg_dbname(): supplied argument is not a valid PostgreSQL link resource in /var/www/php5/index.php on line 19 Test3.. Name der Datenbank ist .
den Benutzer doch erstellt.Code:createuser sqlusr
Der User "sqlusr" verfügt über kein Passwort - zumindest habe ich keins angegeben.
:roll:
Viele Grüsse
sqlman
Hmm, könnte es daran liegen
dass postgres der Owner ist?Code:mz=# \d List of relations Schema | Name | Type | Owner --------+-----------+-------+---------- public | computers | table | postgres (1 row) mz=# select current_user; current_user -------------- postgres (1 row)
Viele Grüsse
sqlman
Hi,
naja, ich habe jetzt den Owner gewechselt
aber es heisst immernoch:Code:mz=# ALTER TABLE computers OWNER TO sqlusr; ALTER TABLE mz=# \d List of relations Schema | Name | Type | Owner --------+-----------+-------+-------- public | computers | table | sqlusr (1 row) mz=#
:-(Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: IDENT authentication failed for user "sqlusr" in /var/www/php5/index.php on line 16
Was habe ich falsch gemacht?
Danke und Viele Grüsse
sqlman
Das Problem dürfte eher hierin bestehen:
http://www.postgresql.org/docs/curre...ntication.html
Nach der Lektüre dieses Dokumentes dürftest du wissen, wie du deinem Client aus dem LAN den connect erlaubst.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hi Ads,
ich danke Dir herzlich für den Hinweis.
Ich habe diesen Abschnitt der Doku überflogen.
Was ich vergessen habe zu tun, war in der Datei
/etc/postgresql/pg_hba.conf
den folgenden Eintrag zu machen:
ACHTUNG: Natürlich muss man später, wenn die Datenbank läuft, gewisse restriktive Änderungen vornehmen - aber für den Anfang reicht das.Code:# TYPE DATABASE USER CIDR-ADDRESS METHOD local all all trust
Viele Grüsse
sqlman
PS: Für die Leute, die nicht darauf kommen sollten:
Nach der Änderung der besagten Konfigurationsdatei muss man postgresql natürlich neustarten![]()
falsch :P ein reload reicht! vor allem für produktiv systeme interessant weil so der db server nicht weg ist aber die einstellungen auch wirksam werden...Zitat von sqlman
cu tb.
Hallo Xandrian,
"reload": Was beschreibt man damit, wie macht man das?
mfg
fristo
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen