Zugriff auf PostgreSQL via DBI

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Columbus
Beiträge: 1051
Registriert: 30.04.2002 15:25:02
Wohnort: Mainz
Kontaktdaten:

Zugriff auf PostgreSQL via DBI

Beitrag von Columbus » 30.12.2005 17:52:26

Hallo,
nachdem ich mich für PostgreSQL entscheiden habe, möchte ich nun mit Perl-DBI darauf zugreifen. Den PG-Treiber habe ich installiert aber wie greife ich auf diesen zu?
Da das PG-Modul im Ordner DBD liegt, habe ich folgendes versucht:

Code: Alles auswählen

my $dbh = DBI->connect ( "dbd:pg:test1", "postgres", "wunderbar" ) or die ...
Aber der Treiber wurde nicht gefunden. Auch unter dbi:pg gabs nichts.
Can't connect to data source dbd:pg:test1, no database driver specified and DBI_
DSN env var not set at /usr/lib/cgi-bin/database.pl line 12
Was muss ich noch beachten?

Gruss Christian
Die größten Kritiker der Elche,
waren früher selber welche.

F.W. Bernstein

Benutzeravatar
rkrueger
Beiträge: 1044
Registriert: 17.06.2004 17:57:17

Beitrag von rkrueger » 30.12.2005 17:56:11

Schau dir mal das Warenwirtschaftssystem LX-Office an. Ist OpenSource und kann dir bei deiner weiteren Arbeit vermutlich weiterhelfen.

http://www.lx-office.org

Benutzeravatar
Columbus
Beiträge: 1051
Registriert: 30.04.2002 15:25:02
Wohnort: Mainz
Kontaktdaten:

Beitrag von Columbus » 30.12.2005 18:19:45

Ich verstehe jetzt nicht den Zusammenhang. Ich brauche nicht irgendeine Datenbank sondern ich habe für das Studium ein Datenbankprojekt. Zur Auswahl stehen Oracle, MaxDB, PostgreSQL oder MS SQL. Daher bräuchte ich schon den DB-Handle.

Gruss Christian
Die größten Kritiker der Elche,
waren früher selber welche.

F.W. Bernstein

schoeppchen
Beiträge: 184
Registriert: 08.12.2005 11:07:15
Kontaktdaten:

Re: Zugriff auf PostgreSQL via DBI

Beitrag von schoeppchen » 30.12.2005 18:48:33

Columbus hat geschrieben:Hallo,
nachdem ich mich für PostgreSQL entscheiden habe, möchte ich nun mit Perl-DBI darauf zugreifen. Den PG-Treiber habe ich installiert aber wie greife ich auf diesen zu?
Da das PG-Modul im Ordner DBD liegt, habe ich folgendes versucht:

Code: Alles auswählen

my $dbh = DBI->connect ( "dbd:pg:test1", "postgres", "wunderbar" ) or die ...
Probier mal:

Code: Alles auswählen

my $dbh = DBI->connect ('DBI:Pg:dbname=test1', 'postgres', 'wunderbar') or die

Benutzeravatar
Columbus
Beiträge: 1051
Registriert: 30.04.2002 15:25:02
Wohnort: Mainz
Kontaktdaten:

Beitrag von Columbus » 30.12.2005 19:04:25

Jetzt bin ich schon weiter. Nur stimmt mit dem User irgend was nicht:
DBI connect('dbname=test1','postgres',...) failed: FATAL: »IDENT«-Authentifizie
rung für Benutzer »postgres« fehlgeschlagen
at /usr/lib/cgi-bin/database.pl line 13
Keine Verbindung mit der DB!
Mit diesem User und dem dazu passenden Passwort kann ich mich auf jeden Fall über die Shell oder über psql einloggen. Aber hier gehts nicht !???!?!
Die größten Kritiker der Elche,
waren früher selber welche.

F.W. Bernstein

schoeppchen
Beiträge: 184
Registriert: 08.12.2005 11:07:15
Kontaktdaten:

Beitrag von schoeppchen » 30.12.2005 19:12:35

Auf welche IP connectierst du? Für Postgres (und dort die pg_hba.conf) ist es ja enorm wichtig, von welcher IP der Zugriff kommt (127.0.0.1, localhost, deine öffentliche IP).

Benutzeravatar
Columbus
Beiträge: 1051
Registriert: 30.04.2002 15:25:02
Wohnort: Mainz
Kontaktdaten:

Beitrag von Columbus » 30.12.2005 19:18:49

Ah ja, das sollte ich wohl erwänen. Ich baue die DBI-Verindung mit einem cgi_bin-Skript auf. Aber ansonnsten, der DB-Server liegt auf dem gleichen Rechner, auf dem ich mich einlogge, es läuft also alles über Localhost! 127.0.0.1
Die größten Kritiker der Elche,
waren früher selber welche.

F.W. Bernstein

Benutzeravatar
bollin
Beiträge: 482
Registriert: 01.11.2003 23:31:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von bollin » 31.12.2005 00:29:41

Du musst ggf. /etc/postgresql/8.0/main/pg_hba.conf o.ä. an deine Bedürfnisse anpassen.

Viele Grüße,
Torsten

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 31.12.2005 01:17:43

Zum Nachlesen was und wie man das bei Postgres einstellt: http://www.postgresql.org/docs/7.4/inte ... ation.html

Antworten