Postgresql 8.1 / Postfix / Ubuntu - unix:/var/run/postgresql nicht augelöst?

Dieses Thema im Forum "SQL und Datenbanken" wurde erstellt von karru, 19.09.2006.

  1. karru

    karru OSX'ler

    Dabei seit:
    02.05.2006
    Beiträge:
    338
    Zustimmungen:
    0
    Hallo liebes Bördlein.

    Vorweg, für diesen Thread gibt es wahrscheinlich nicht "das richtige Board", also pack ich das hier jetzt mal nach Datenbanken. Vielleicht passt es aber auch zu Mailserver oder Ubuntu - ich weiß es nicht...

    Zu meiner Herausforderung... Ich versuche einen Postfix-Mailserver mit Postgress als Datenbank auf einem Ubuntu-Server 6.10 (selbstinstalliert auf einem virtuellen Root) angelehnt am Tutorial aus dem Gentoo-Wiki aufzusetzen.
    Link: http://gentoo-wiki.com/HOWTO_Email:_A_Complete_Virtual_System_-_Postfix

    Mal einen bisschen zum Softwarestand:
    Postgres 8.1 - läuft, per standard Socket, also /var/run/progresql, ohne -i also nix TCP
    Postfix 2.x - läuft, wenn die virtual_*-Direktiven auskommentieret sind... s.u.
    Postfixadmin - läuft, eher unwichtig jetzt...

    Nun zu meinem merkwürdigen Problem:
    Sobald ich die virtual_*-Direktiven in der Konfiguration von Postfix einbaue und den Server neustarte, kann ich mich zwar noch mit dem Server per Port 25 verbinden, allerdings passiert nichts...

    Hier ein paar Ausschnitte aus den Konfigurationen:

    /etc/postfix/main.cf
    Code:
    virtual_mailbox_domains = pgsql:/etc/postfix/pgsql/pgsql-virtual-domains.cf
    virtual_mailbox_maps = pgsql:/etc/postfix/pgsql/pgsql-virtual-maps.cf
    virtual_uid_maps = pgsql:/etc/postfix/pgsql/pgsql-virtual-uid.cf
    virtual_gid_maps = pgsql:/etc/postfix/pgsql/pgsql-virtual-gid.cf
    virtual_alias_maps = pgsql:/etc/postfix/pgsql/pgsql-virtual.cf
    Die /etc/postfix/pgsql/pgsql-virtual*-Dateien haben alle das gleich Muster, hier auch ein Beispiel:

    /etc/postfix/pgsql/pgsql-virtual.cf
    Code:
    user            = postfix
    password        = SOMEPW
    dbname          = postfix
    hosts           = unix:/var/run/postgresql
    table           = alias
    select_field    = goto
    where_field     = address
    additional_conditions = and active = 'true'
    Habe als Wert für hosts schon localhost/ip, Externe ip (was eig. unsinig ist, wegen den Host-Zugriffsrechten... :D), unix:/var..., /var... oder die Variable komplett weglassen ausprobiert. Damit bin ich also mit meinem Try&Error am Ende... :D

    Merkwürdig finde ich auch, dass in der Konsole weder ein `psql -h unix:/var/run/postgresql -U postfix postfix` noch ein `psql -h localhost -U postfix postfix` funktioniert... (ohne -h funktioniert es)

    Was ich auch sehr bedenklich fand/finde, bei der Installation von Postfixadmin 2.1 musste ich aus dem connection_string der PHP-Funktion `pg_connect` die Angabe des Hostes entfernen, sonst ist einfach nichts passiert - keine Fehlermeldung, nix. Nach der Anpassung funktionierte es allerdings Fehlerlos.

    So langsam bin ich ziemlich ratlos, warum es teils funktioniert, teils nicht...
    Ich hoffe, dass mir hier jemand auf die Sprünge helfen kann.

    :think:

    danke, gruß und gute Nacht - karru
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Ich denke, dass es sich hier eindeutig um ein Datenbank-Problem handelt. 'localhost' duerfte uebrigens der richtige Weg sein um mit der DB zu connecten. Frage: Wenn du nicht mit der DB verbinden kannst, wie hast du dann den User postfix@localhost angelegt?
     
  4. karru

    karru OSX'ler

    Dabei seit:
    02.05.2006
    Beiträge:
    338
    Zustimmungen:
    0
    Das geht vielleicht etwas undeutlich aus dem Thread hervor (siehe uhrzeit x-)) aber ich kann mich ja mit der Datenbank verbinden.

    Folgende Verbindungen haben bisher funktioniert:
    • psql -U username datenbank - z.b. 'psql -U postfix postfix' o. 'psql -U postgres postfix'
    • psql -h /var/run/postgresql -U username datenbank
    • webmin postfix modul
    • php, pg_connector - aber nur *ohne* angabe von "host=..." - zb. pg_connect("dbname=postfix user=postfix pass=Passw0rd")

    Was nicht bisher funktionierte:
    • psql -h unix:/var/run/postgresql -U username datenbank - ist die richtige Formulierung nicht eigentlich so?!
    • php, pg_connector - pg_connect("host=XXX dbname=postfix user=postfix pass=Passw0rd") - wobei XXX mit folgenden werden getestet wurde: '/var/run/postgresql', 'unix:/var/run/postgresql', 'localhost', '127.0.0.1'
    • Verbindung per Postfix

    Da dies mein erster Kontakt mit Postgresql ist, hab ich vielleich auch was in der host-konfiguration falsch gemacht, folgend mal die Datei /etc/postgresql/8.1/main/pg_hba.conf:
    Code:
    local all postgres password
    local postfix postfix,postfixadmin password
    Was mit gerade auffällt, wenn ich auf dem Server ein 'telnet 127.0.0.1 5432' ausführen möchte, bekomme folgende Fehlermeldung:
    Code:
    # telnet 127.0.0.1 5432
    Trying 127.0.0.1...
    telnet: Unable to connect to remote host: Invalid argument
    Allerdings läuft der Server:
    Code:
    # netstat -tanp | grep 127.0.0.1
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     -
    tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN     -
    Und weiter unten:
    Code:
    unix  2      [ ACC ]     STREAM     HÖRT         2551772932 -                   /var/run/postgresql/.s.PGSQL.5432
    
    Hat jemand noch eine Idee?

    danke, gruß, karru
     
  5. #4 lordlamer, 19.09.2006
    lordlamer

    lordlamer Haudegen

    Dabei seit:
    15.05.2003
    Beiträge:
    703
    Zustimmungen:
    0
    Ort:
    hamburg
    Hi,

    postgres ist der superuser für postgresql. mit dem kann man sich immer verbinden. was du machen solltest ist

    su - postgres
    createuser username
    [createdb dbname]

    achte bei createuser darauf das du das passwort verschlüsselt speichern lässt! --help ist dein freund ;)

    dann musst du deine pg_hba.conf anpassen. und zwar so das man sich per tcp anmelden kann.

    ausm kopfraus irgendwie so:
    host 127.0.0.1 255.255.0.0 md5

    ansonsten mal die logfiles checken! da steht auch immer was drin!

    mfg frank
     
  6. #5 karru, 19.09.2006
    Zuletzt bearbeitet: 19.09.2006
    karru

    karru OSX'ler

    Dabei seit:
    02.05.2006
    Beiträge:
    338
    Zustimmungen:
    0
    hey,

    die datenbanken und benutzer gibt es ja. postfixadmin funktioniert ja schon wunderbar damit.
    ich möchte ja auch garkeine verbindung per tcp sondern per unixsocket, aber postfix mag es nicht...

    in dem logfile steht nichts drin, das war natürlich auch mein erster anlaufpunkt :)

    was mich gerade etwas durcheinander bringt ist folgendes:
    Code:
    # psql -h unix:/var/run/postgresql -U postfix postfix
    psql: could not translate host name "unix:/var/run/postgresql" to address: Name or service not known
    doch nicht... mit psql -h /var/run/postgresql/ -U postfix postfix funktioniert es...

    Ich bin verwirrt... :D

    //EDIT:
    Was mir gerade noch mehr sorgen bereitet, ich kann generell keine verbindungen zu localhost herstellen.

    Code:
    # netstat -tanp
    Aktive Internetverbindungen (Server und stehende Verbindungen)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     -
    tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     -
    tcp        0      0 <ext-ip>:22         0.0.0.0:*               LISTEN     -
    tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN     -
    tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN     -
    # telnet 127.0.0.1 80
    Trying 127.0.0.1...
    telnet: Unable to connect to remote host: Invalid argument
    # telnet 127.0.0.1 21
    Trying 127.0.0.1...
    telnet: Unable to connect to remote host: Invalid argument
    # telnet <ext-ip> 21
    Trying <ext-ip>...
    telnet: Unable to connect to remote host: Invalid argument
    # telnet google.de 80
    Trying 66.249.93.104...
    Connected to google.de.
    Escape character is '^]'.
    Ich hab stark das Gefühl, dass es damit zusammenhängt...
    Google bringt mich nicht sehr weit, hat jemand hier eine Idee?


    Dank und gruß Karru
     
  7. #6 lordlamer, 19.09.2006
    lordlamer

    lordlamer Haudegen

    Dabei seit:
    15.05.2003
    Beiträge:
    703
    Zustimmungen:
    0
    Ort:
    hamburg
    läuft postfix inner chroot umgebung? mal die master.conf checken!
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. sono

    sono Sack Flöhe Hüter

    Dabei seit:
    31.01.2004
    Beiträge:
    1.299
    Zustimmungen:
    0
    Ort:
    http://webfrap.de
    Lies mal die Errorlogs von deinem PostfixServer durch.
    In denen steht ziemlich genau warum es ned geht.

    Meistens sind das kleine Configurationsprobleme. Du könntest btw in der pg_hba.conf deinen Mailserveruser so konfigurieren, dass du für den lokalen zugriff auf die MailDb kein Passwort benötigst.

    Lies aber wie gesagt die Logs von Postfix in /var/log/ durch, und wenn dir ned klar sein was postfix will, weisch ja wohin mit.

    Ps
    Wenn du die Conf fertig hast, kann ich die dann mal sehen? Ich hab nen Postfix an ner Mysql und will auf Postgres umbauen.

    Gruß Dominik
     
  10. #8 karru, 19.09.2006
    Zuletzt bearbeitet: 19.09.2006
    karru

    karru OSX'ler

    Dabei seit:
    02.05.2006
    Beiträge:
    338
    Zustimmungen:
    0
    Siehe das supertutorial von gentoo-wiki.com.
    Für dich ist das Kapitel "Postfix to Postgres" interessant. Ich find das alles recht selbsterklärend:
    http://gentoo-wiki.com/HOWTO_Email:_A_Complete_Virtual_System_-_Postfix_to_Postgres

    gruß Karru



    /**** EDIT ****/
    Und wiedereinmal bringe ich den Beweis zur Existens der menschen BLÖDHEIT:

    Code:
    Sep 19 11:51:38 vs189083 postfix/cleanup[10095]: fatal: dict_open: unsupported dictionary type: pgsql:  Is the postfix-pgsql package installed?
    (hab immer nur ins postgres log geguckt ...)

    Nun funktionierts - auch mit Sockets.

    KEIN KOMMENTAR - dankend und kotzend, euer Karru


    PS.1:
    Die Sache mit der Verbindung zu localhost:
    Da ich auf einem virtuellem Server bin, wurde die Datei /etc/network/interfaces bei jedem Systemstart zurückgesetzt und ich musste folgendes machen um die Verbindungsprobleme zu beheben:
    Code:
    echo "auto lo" >> /etc/network/interfaces.template
    echo "iface lo inet loopback" >> /etc/network/interfaces.template
    PS.2:
    Da ich im Netz bisher keine (funktionierendes) Tutorial für einen Postfix-Mailer unter Ubuntu mit Postgres und virtuellen Domains gefunden hab, werd ich in naher Zukunft hier mal ein Tutorial ausarbeiten...
     
Thema: Postgresql 8.1 / Postfix / Ubuntu - unix:/var/run/postgresql nicht augelöst?
Besucher kamen mit folgenden Suchen
  1. postfix postgresql connect to pgsql server /var/run/postgresq

    ,
  2. postfix pgsql /var/run/postgresql

    ,
  3. postfix connect to pgsql server unix:/var/run/postgresql

Die Seite wird geladen...

Postgresql 8.1 / Postfix / Ubuntu - unix:/var/run/postgresql nicht augelöst? - Ähnliche Themen

  1. PostgreSQL korrigiert kritische Sicherheitslücke

    PostgreSQL korrigiert kritische Sicherheitslücke: Die Entwickler der freien objektrelationalen Datenbank PostgreSQL haben ein Sicherheitsupdate veröffentlicht, das unter anderem einen Absturz...
  2. PostgreSQL 9.5 freigegeben

    PostgreSQL 9.5 freigegeben: Die PostgreSQL-Entwickler haben Version 9.5 des freien objektrelationalen Datenbanksystems PostgreSQL offiziell veröffentlicht. Neuerungen sind...
  3. Erster Veröffentlichungskandidat von PostgreSQL 9.5

    Erster Veröffentlichungskandidat von PostgreSQL 9.5: Die PostgreSQL-Entwickler haben den ersten Veröffentlichungskandidaten der kommenden Version 9.5 des freien objektrelationalen Datenbanksystems...
  4. PostgreSQL 9.5 Beta 1 freigegeben

    PostgreSQL 9.5 Beta 1 freigegeben: Die PostgreSQL-Entwickler haben eine erste Vorschau auf die kommende Version 9.5 des freien objektrelationalen Datenbanksystems veröffentlicht....
  5. PostgreSQL 9.4 mit JSONB und Logical Decoding

    PostgreSQL 9.4 mit JSONB und Logical Decoding: Die PostgreSQL Global Development Group hat das freie, objektrelationale Datenbankmanagementsystem (DBMS) PostgreSQL in der Version 9.4...