Newsgroup: it.comp.os.linux.sys
Titolo: Postfix, mysql e Courier

Sto cercando di metter su un piccolo sistema email completamente
opensource - e ci sto diventando matto
Il risultato finale dovrebbe essere come da subject - mi era sembrata la
soluzione piu' standard (ed in un futuro prossimo, vorrei usarlo per
sostituire completamente il sistema di posta che usiamo adesso)
Per motivi che sarebbe lungo spiegare, l'unica macchina disponibile e'
quella che al momento funge da gateway - postfix riceve la posta, la
filtra attraverso amavisd, spamassassin+razor e clamav e la invia al
server su un'altra macchina (Netscape Suitespot 4 - ho trovato impronte di
velociraptor su uno dei manuali).
Ho installato courier, mysql e mysql-dev da rpm, ho ricompilato postfix
per il supporto mysql, e sembrava non ci fossero problemi.
Ho seguito in generale un howto che avevo trovato tempo fa
http://www.high5.net/howto/
 per la creazione delle tavole nel database,
eccetto per il fatto che ho aggiunto una transport table (idea presa da un
altro howto) con domain e transport (local, virtual eccetera) come unici
campi.
Per testare il supporto di mysql ho attivato per prima cosa la transport
table:
(da 
main.cf
)
# transport_maps = hash:/etc/postfix/transport
transport_maps = mysql:/etc/postfix/
transport.cf
transport.cf
 e' come segue:
user = postfix
password = xx
dbname = postfix
table = transport
select_field = transport
where_field = domain
hosts = unix:/var/lib/mysql/mysql.sock
esattamente come da howto. Anzi no, in origine era hosts = localhost
Quando riavvio postfix, ho quanto segue:
Aug 11 16:11:55 verdeca postfix/trivial-rewrite[29366]: warning: connect
	to mysql server localhost: Can't connect to local MySQL server through
	socket '/var/lib/mysql/mysql.sock' (2)
Aug 11 16:11:55 verdeca postfix/trivial-rewrite[29366]: warning:
	transport_maps lookup failure
In generale, googlando, ho trovato che l'errore standard e' il (13) -
permission denied; i pochi riferimenti ad un codice d'errore (2) non
menzionano a cosa sia dovuto. Il fatto che nella documentazione di Postfix
ci sia una noticina che dice che i messaggi d'errore verranno resi un
giorno disponibili sul sito e sui mirror e' esplicativo, ma di poco aiuto.
/var/lib/mysql/mysql.sock esiste ed e' leggibile: ho abilitato
temporaneamente il login per l'utente postfix e ho provato a dare mysql
-h localhost -u postfix -p'xx' e sono entrato senza problemi (fra l'altro,
no, postfix per ora non gira chrooted).
Fra l'altro, abilitando trivial-rewrite -v in 
master.cf
, ho questo nei log:
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: mysqlname_parse(): 
	set username to 'postfix'
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: mysqlname_parse(): 
	set password to 'xx'
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: mysqlname_parse(): 
	set database name to 'postfix'
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: mysqlname_parse(): 
	set table name to 'transport'
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: mysqlname_parse(): 
	set select_field to 'transport'
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: mysqlname_parse(): 
	set where_field to 'domain'
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: mysqlname_parse(): 
	set additional_conditions to ''
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: mysqlname_parse(): 
	adding host 'unix:/var/lib/mysql/mysql.sock' to list of mysql server
	hosts
(quindi sembra leggere correttamente 
transport.cf
)
e poi
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: 
	dict_mysql_lookup using sql query: select transport from transport where
	domain = '*' 
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]:
	dict_mysql: attempting to connect to host unix:/var/lib/mysql/mysql.sock
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: warning: connect
	to mysql server unix:/var/lib/mysql/mysql.sock: Can't connect to local
	MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 
Aug 11 18:37:12 verdeca postfix/trivial-rewrite[13277]: maps_find:
	transport: *: search aborted
Ho passato il pomeriggio su google senza approdare a niente, e onestamente
non so piu' cosa diavolo cercare. Qualcuno ha qualche idea, o sa a cosa si
riferisce il codice d'errore 2 in Postfix?
Grazie in anticipo
Eugenio

 riferisce il codice d'errore 2 in Postfix?
Mi sa che hai cercato male...
Poco piů giů (ma poco poco, stesso NG) nei giorni scorsi si č parlato della
stessissima cosa.
Saluti, 
 Max



Porc...
Se dico che errore ho commesso nella ricerca, probabilmente faccio due-tre
morti per le risate, su questo gruppo.
Comunque un symlink non risolve la questione, a quanto pare bisogna usare
proxy:mysql:/path/to/socket invece che semplicemente mysql:/path/to/socket
E' bastato correggere un tantino la ricerca per trovare la risposta
Grazie per l'aiuto indiretto... :)
Eugenio
(non seguo assiduamente questo NG - quella discussione me l'ero persa,
onestamente)