Installationsprobleme bei Programm dass auf PSQL zugreift

Hallo,

ich versuche gerade ein etwas schlecht dokumentiertes Programm zum laufen zu bekommen. Ich habe mich nun schon durch einige Fehler durchgekämpft. Nun aber ein neues Problem: Nachfolgend die Konsolenausgabe des Programms.

database created
dbi: cannot open template1
pdi: create database failed

In der config des Programms habe ich den DB String wie folgend eingestellt. Sollte eigentlich passen :frowning: .
dbs = pgs:localhost:5432 :p id_test :p ostgres:*******

Jemand eine Idee was es damit auf sich hat? Es scheint sich ja auf jeden Fall um ein Problem der Kommunukation zwischen psql und dem Programm zu handeln.

Keiner hier weiß, um welches Programm es geht. Keiner weiß, ob PG überhaupt installiert ist und läuft, ob es am Port lauscht, welcher Benutzer dies versucht etc.


Möglicherweise bist Du beim Support für dieses Programm besser aufgehoben als hier…


Andreas

Naja, die Meldungen “database created” und “cannot open template1” lassen auf jeden Fall vermuten, dass PG läuft und auch lauscht.

Na die Kommunikation funktioniert ja. Ich würde mal vermuten, “das Program” hat irgendwas beim initdb oder beim Anlegen des Benutzers verbockt (z.B.: Berechtigungen).
template1 sollte eigentlich immer verfügbar sein.

Wie genau “das Programm” aber initdb ausgeführt hat bzw. was da schief gelaufen ist, können wir natürlich auch nicht (hell)sehen.
Gibt es noch mehr Details aus dem Logfile des “Programs”?
Oder steht im PostgreSQL Log was drin?

Und wie heisst das Programm?

Hallo,
es handelt sich um ein Programm von einer Universität. Ich weiss, das andere Leute das Programm schon zum Laufen gebracht haben, aber auch nur mit vielen Mühen. Ist leider nicht frei herunterladbar. Anbei der pSQL log wenn ich versuche eine Datenbank zu erstellen:

2012-04-03 09:34:14 CEST LOG: Datenbanksystem wurde am 2012-04-03 09:34:12 CEST heruntergefahren
2012-04-03 09:34:14 CEST LOG: Datenbanksystem ist bereit, um Verbindungen anzunehmen
2012-04-03 09:34:14 CEST LOG: Autovacuum-Launcher startet
2012-04-03 09:46:05 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:46:05 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:50:02 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:50:02 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:52:42 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:52:42 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:53:22 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:53:22 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:53:48 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:53:48 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:54:43 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 09:54:43 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 10:00:23 CEST LOG: unerwartetes EOF im Message-Längenwort
2012-04-03 10:00:23 CEST LOG: unerwartetes EOF im Message-Längenwort

Das hier:

sieht irgendwie nicht gut aus.

Kann es sein, dass bei Dir Treiber und Server nicht zusammenpassen z.B. ein uralt JDBC Treiber und eine aktuelle Postgres Version - oder andersrum.

Welche PostgreSQL version verwendest Du denn?
Und wie greift “das Programm” auf die Datenbank zu?

Könnte aber auch was mit der Firewall oder dem Anti-Virus Programm zu tun haben

Ich verwende version 8.4.
So wie ich das sehe erfolgt der Zugriff über eine Konfigurationsdatei. Den String habe ich dort wie folgend angegeben:
dbs = pgs:localhost:5432:pid_test:postgres:********

Hier mal was dazu in der Doku des Programmes steht:

The database connection is specified with the attribute dbs, as a single string
of tokens, separated by colons. Note that, in general, the syntax of this string
is DBMS-specific, i. e. depending on the database access method there will be
different representations of the corresponding access specification. A connection
string always begins with a prefix, which identifies a unique database driver, e.
g. a specific system such as PostgreSQL or a specific standard such as ODBC.
The rest of the connection string will be specific to the selected driver. However,
in general, the syntax of the database connection string is defined as follows.

Syntax Connection Specification
Connection Specification ::= dbs = [pgs : pgs access | odbc : odbc access]
pgs access ::= host : port : name : user : password
odbc access ::= datasource name : user : password

Example
dbs = pgs:localhost::pdb:foo:bar
This expression specifies a database connection on the actual machine to the
database named ‘pdb’, accessed as the user ‘foo’ with password ‘bar’, using the
native database driver for PostgreSQL.
dbs = odbc:psx:foo:bar
This expression is an example of a connect string for a database system using
ODBC. The datasource name is specified as ‘psx’ which will be accessed by the
user ‘foo’ using the password ‘bar’.

Kannst du dich mit den Verbindungsdaten mit psql einloggen?

CU Uwe

Ein Zugriff erfolgt aus einem Programm mittels eines Datenbanktreibers.
Ein Konfigruationsdatei definiert nur wie dieser Zugriff erfolgt.
Sieht aber nach einer ODBC Verbindung aus.

Ist denn der ODBC Treiber aktuell?
Hast Du mal versucht den Virenscanner auszuschalten, oder zumindest alles was mit PostgreSQL zu tun (Datenverzeichnis, Programmdateien) vom scannen auszunehmen?

Hallo,
also das Programm ist ein wenig komisch. Es gibt eine version für Linux und 2 versionen für windows. Eine mit ODBC und eine mit PSQL. Ich denke die eine eben für diesen odbc driver die anderen für den pgs driver. Bei der version mit dem ODBC driver habe ich nun den folgenden String angegeben.

dbs = odbc:localhost:5432:pid_test:postgres:******

Hierzu gibt das log des Programmes dann aber einiges mehr an Meldungen als bei der PSQL version. PSQL selber logged überhaupt nichts, auch nicht den EOF fehler.


2012-04-03 12:33:20 dbi/odbc: ODBC error: SQLConnect() failed!
2012-04-03 12:33:20 dbi/odbc: Unknown ODBC error: SQLGetDiagRec() failed!

2012-04-03 12:33:20 dbi/odbc: open failed!
2012-04-03 12:33:20 pdi: create database
2012-04-03 12:33:20 dbi/odbc: ODBC error: SQLConnect() failed!
2012-04-03 12:33:20 dbi/odbc: Unknown ODBC error: SQLGetDiagRec() failed!

2012-04-03 12:33:20 dbi/odbc: open failed!
2012-04-03 12:33:20 pdi: database open error [odbc:localhost:5432:pid_test:postgres:******]
2012-04-03 12:33:20 aes: aes exit
2012-04-03 12:33:20 aes: init, nb=4,nk=8
2012-04-03 12:33:20 idea: idea init
2012-04-03 12:33:20 sys: exit (-1)

@Gisman

Kannst du dich mit den Verbindungsdaten mit psql einloggen?

Wie meinst du das? Also über den pgAdmin kann ich mich damit einloggen? Habe mal einen screenshot angehängt.

Also falls gewünscht, kann ich das Programm auch per mail verschicken, ich will nur nicht, dass das ganze zu große Wellen schlägt.

Jo, einloggen geht also. Was für ein Windows benutzt du und was für einen ODBC-Treiber. WIMRE hatte ich da mal nicht ganz unerhebliche Probleme mit dem 64bit-ODBC-Treiber.

Gruß Uwe

Also habe windows XP Professional 2002 service pack 3.
Ich weis leider nicht genau wo ich die Informationen meines Treibers her bekomme. Ich habe auch keine Treiber nachträglich installiert.
Installationsdatei für PSQL war Download PostgreSQL | EnterpriseDB (8.4.11 für windows).

dbi/odbc: Unknown ODBC error: SQLGetDiagRec() failed!

Ich tippe ja stark auf ein Problem mit der ODBC Anbindung.

Du sagst es gibt auch eine “native” Version? Dann versuch doch mal die, und umgehe den ODBC Treiber

Und nochmal meine Frage: Hast Du mal versucht den Virenscanner auszuschalten?

Hallo ja die “native” version war die, die ich zuerst genannt habe. Bei der passiert zumindest im PSQL log etwas. Den Virenscanner habe ich ausgeschaltet aber nichts tut sich!

Und was passiert da?

Naja das hier

2012-04-03 10:00:23 CEST LOG: unerwartetes EOF im Message-Längenwort

Vielleicht hilft die Fehlermeldung auf Englisch weiter…

#: libpq/pqcomm.c:841

msgid "unexpected EOF within message length word"
msgstr "unerwartetes EOF im Message-Längenwort"

Habe dazu gestern schon ein wenig Suche betrieben aber mehr oder minder ohne Sucherfolge die auf das Problem zutreffen könnten. Habe nun etwas anderes in einem Erfahrungsbericht zum Programm gefunden:
“Als Datenbank wird PostgreSQL direkt unterstützt, hierfür ist eine Anpassung des PostgreSQL Client Authentication Configuration File (pg_hba.conf) nötig.”
Bei der angesprochenen Installation ging es um eine Linux Installation - gibt es ein Equivalent zu pg_hba.conf auch unter windows?

Ja, sicher. Dort wird grob gesagt geregelt, wer wie auf welche Datenbank zugreifen darf. Verwendest du oder deine Software PGPool? Hier Pgpool-II Frequently Asked Questions(Punkt 8) taucht der Fehler im Zusammenhang mit dem Login auf.

Gruß Uwe

Danke erstmal für den Link. Also ob das Programm PGPool verwendet kann ich leider nicht sagen. Ich selber tue es auf jeden Fall nicht. Wo lässt sich denn unter Windows die file pg_hba.conf aufspühren? Und dann hätte ich noch eine weiter Spur - also in der Doku zu Linux(wie gesagt ich versuche es aber unter windows zum laufen zu bekommen) steht folgendes:

Note that the library files for accessing the database
system (PostgreSQL or ODBC) must be installed before running the script. For
PostgreSQL, it is the header file libpq-fe.h that needs to be present.

Unter windows finde ich im libpq Verzeichnis aber nur libpq-fs.h also nicht libpq.fe.h. Vielleicht liegt das Problem ja daran. Ich versuche nun mal die Datei irgendwo im Netz aufzuspühren.

edit: ok nein, die datei ist doch schon vorhanden. War unter include/libpq-fe.h
edit2: die pg_hba ist nun auch aufgespührt. (windows suche hilft)