[Mdk10.1] Alias avec Postfix et Mysql

Fermé
Olivier4020 - 28 nov. 2006 à 14:07
 trstrs - 26 juin 2008 à 13:55
Bonjour à tous

Je travaille sous Mandrake 10.1 et j'ai configuré Postfix 2.1.4 avec uw-imap (pop et imap). Tout fonctionne très bien.

j'aimerai, dans un premier temps, utiliser une table Mysql contenant mes alias. Et là, ça bloque ! J'ai pu m'inspirer de quelques tutos mais rien à faire Postfix ne veut pas démarrer.

J'ai installé le package Postfix-Mysql pour que Postfix travaille avec Mysql.
J'ai modifié la ligne suivante dans main.cf

alias_maps = hash:/etc/postfix/aliases, 
                  hash:/var/lib/mailman/data/aliases,
                  mysql:/etc/postfix/mysql_aliases.cf


J'ai créé un fichier /etc/postfix/mysql_aliases.cf

user = postfix
password = monmotdepasse
dbname = postfix
table = aliases
select_field = destination
where_field = mail
# additional_conditions = and status = 'Y'


Dans mysql, j'ai créé un utilisateur postfix:
> mysql -ppassword
USE mysql;
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('monmotdepasse'));
INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y');
FLUSH PRIVILEGES;
GRANT USAGE ON postfix.* TO postfix@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfix@localhosts;


J'ai créé ma base de donnée "postfix" et ma table "aliases":
CREATE DATABASE postfix;
USE postfix;
CREATE TABLE `aliases` (
  `alias_id` smallint(6) NOT NULL auto_increment,
  `mail` varchar(120) NOT NULL default '',
  `destination` varchar(120) NOT NULL default '',
  `status` char(1) NOT NULL default '',
  PRIMARY KEY  (`alias_id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;


J'ai redémarrer mysql et postfix mais ce dernier ne se lance pas !
Dans mes logs, j'ai la warning suivante:
Nov 28 13:12:18 postfix/smtpd[6500]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


Je commence à désespérer de faire fonctionner Postfix avec Mysql, alors, si quelqu'un à une idée, je suis preneur !

A bientot
Et merci

Olivier

1 réponse

mkdir -p /var/spool/postfix/var/run/mysqld
chown mysql /var/spool/postfix/var/run/mysqld
ln /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld/mysqld.sock
0
Ca marche. Une fois.

Quand mysql redémarre, la socket est détruite et recrée, avec un numéro d'inode différent.
Le lien dur est cassé, la socket n'est plus trouvée par mysql, la connexion est rompue.

J'ai essayé avec un lien symbolique, postfix ne trouve pas la socket.

La connexion par socket dans un environnement chrooté ne semble pas fonctionner: il faut se connecter en TCP, par le réseau.
Dans les fichiers mysql_virtual_*_maps.cf j'ai remplacé localhost par 127.0.0.1
Là, plus besoin de socket, j'ai supprimé /var/spool/postfix/var/run/mysqld/mysqld.sock.
Mysql peut redémarrer, postfix s'y connecte toujours.
0