5

Postfix は次のようなエラーを吐き出しています:

7 月 9 日 14:41:26 tmail postfix/trivial-rewrite[4342]: 警告: mysql サーバー unix に接続:/var/run/mysqld/mysqld.sock: ソケット '/var/ を介してローカル MySQL サーバーに接続できませんrun/mysqld/mysqld.sock' (2) 7 月 9 日 14:41:26 tmail postfix/trivial-rewrite[4342]: 致命的: mysql:/etc/postfix/mysql-yaa-aliases.cf(0,lock|fold_fix ): テーブル ルックアップの問題

main.cf には次のものがあります。

virtual_alias_maps = mysql:/etc/postfix/mysql-yaa-aliases.cf

mysql-yaa-aliases.cf には次のものがあります。

hosts = unix:/var/run/mysqld/mysqld.sock
# hosts = 127.0.0.1
user = yaa_admin
password = ********
dbname = yaa
query = SELECT dest FROM yaa_active_aliases WHERE address='%s'

127.0.0.1 を使用すると動作します (ソケットの速度を好むので理想的ではありません)。 また、postmap でソケットをテストすると動作します:

# postmap -q "bholly@example.org" mysql:/etc/postfix/mysql-yaa-aliases.cf
bholly@example.org, bholly@autoreply.example.org

trivial-rewrite デーモンで strace を使用すると、次のようになります。

connect(11, {sa_family=AF_FILE, path="/var/run/mysqld/mysqld.sock"}, 110) = -1 ENOENT (No such file or directory)

postmap を使用して strace を使用すると、次のようになります。

connect(4, {sa_family=AF_FILE, path="/var/run/mysqld/mysqld.sock"}, 110) = 0

ところで - 現在 Postfix 2.7 を実行していますが、2.9 でも障害が表示されます

4

1 に答える 1

13

見つけました:) - トリビアルリライトはchroot監獄で行われるため、ソケットファイルは実際には存在しません。

解決策 (これを手伝ってくれたhttps://serverfault.com/questions/229389に感謝します) は、これを /etc/fstab に追加することです:

/var/run/mysqld /var/spool/postfix/var/run/mysqld bind defaults,bind 0 0

したがって、Postfix がその chroot 構成を保持できるようにし、mysql ソケットへのアクセスを許可します。

于 2012-07-10T02:51:57.647 に答える