postfix->mysql verbindungsproblem

softice

Mitglied
Hallo,
ich habe einen Postfixserver mit sql und sasl unterstützung aufgesetzt. Die Basiskonfiguration mit einer Domain funktioniert, Mails können hin und her geschickt werden. Nun muss ich noch zwei zusätzliche Domains verwalten, das realisiere ich mit virtual mailbox domains.
Ich habe die Virtuellen User in die Datenbank verfrachtet, da ich für diese Domains viele Accounts erwarte. Wenn ich mich zum postfix verbinde, kriege ich im log folgende Fehlermeldung:

Dec 3 17:48:32 noise postfix/smtpd[4744]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Ich komme per console als user postfix auf den sql-server rauf und kann auch daten ausgeben lassen. Die Berechtigungen für den sock:

srwxrwxrwx 1 mysql mysql 0 2007-12-03 15:11 mysqld.sock

inhalt in der main.cf:

virtual_mailbox_domains =/etc/postfix/virtual_mailbox_domain_map
virtual_uid_maps = /etc/postfix/virtual_mailbox_uid_map
virtual_gid_maps = $virtual_uid_maps
virtual_mailbox_base = /var/spool/virtual_mailboxes
virtual_mailbox_maps = mysql:/etc/postfix/sql/virtual_mailbox_recipients.cf <--------

Es werden insgesamt 3 domains verwaltet, davon stehen zwei als virtuelle in der virtual_mailbox_domains. Die gid/uid habe ich für die beiden domains in der virtual_uid_maps gesetzt per "@domain.xxx 100x" gesetzt.

in der virtual_mailbox_maps steht folgendes:

user = xxx
password = xxx
hosts = localhost
dbname = mail
table = virtual_users
query = SELECT virtual_mailbox FROM virtual_users WHERE email = '%s' AND active = '1'

postmap -q gibt über die map auch daten aus der db raus, nur postmap packt es nicht. Hat vielleicht jemand einen tip, wo ich noch nachgucken könnte?
 
Hallo Leute! Aalso, ein Problem scheint das hier zu sein..


Da Postfix in einer chroot-Umgebung läuft, hat es erst mal keinen Zugriff auf den My SQL- Socket?, welcher sich ja außerhalb der chroot-Umgebung von Postfix befindet. Also passen wir das Startskript von Postfix derart an, dass beim Start des Mailservers ein Hardlink des My SQL- Sockets? in der chroot-Umgebung erzeugt wird:
Die Datei /etc/init.d/postfix ist folgendermaßen zu ergänzen:


case "$1" in
[...]
start)
[...]
umask $oldumask

if [ -x /var/spool/postfix/var/run/mysqld/mysqld.sock ] ; then
rm /var/spool/postfix/var/run/mysqld/mysqld.sock
fi
ln /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld/mysqld.sock
[...]

.. was aber auch nicht funktioniert, weil hardlinks nicht filesystemübergreifend benutzt werden kann, dann kommt nämlich ein invalid cross-device fehler -.-

Ich bleibe am ball; wenn wer parallel noch was wissen will, oder ich zu wenig infos gegeben hab - ihr Anmerkungen oder sonstiges habt, bin ich euch sehr dankbar :o)
 
Ich bin gerade dabei, die Logs noch einmal zu durchforsten, ich poste einfach mal die inhalte.. vielleicht hat jemand die zündende idee ;)

Dec 3 21:11:12 noise postfix/smtpd[4222]: match_string: xxx.net ~? localhost.yyy.net
Dec 3 21:11:12 noise postfix/smtpd[4222]: match_string: xxx.net ~? localhost
Dec 3 21:11:12 noise postfix/smtpd[4222]: match_list_match: xxx.net: no match
Dec 3 21:11:12 noise postfix/smtpd[4222]: maps_find: virtual_alias_maps: @xxx.net: not found
Dec 3 21:11:12 noise postfix/smtpd[4222]: mail_addr_find: abuse@xxx.net -> (not found)
Dec 3 21:11:12 noise postfix/smtpd[4222]: dict_mysql_get_active: attempting to connect to host localhost
Dec 3 21:11:12 noise postfix/smtpd[4222]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (40)
Dec 3 21:11:12 noise postfix/smtpd[4222]: maps_find: virtual_mailbox_maps: abuse@xxx.net: search aborted
Dec 3 21:11:12 noise postfix/smtpd[4222]: mail_addr_find: abuse@xxx.net -> (try again)


so far

gruß softi

edit: ich habe vergessen zu sagen, wenn die virtuellen recipient maps in statischen maps sind, funktioniert es. Wie die Datenbankverbindung laufen soll, ist mir leider immer noch ein Rätsel.
 
Zuletzt bearbeitet:
Zurück