Postfix抛出错误说:
7月9日14:41:26 tmail postfix/trivial-rewrite [4342]:警告:连接到mysql服务器unix:/var/run/mysqld/mysqld.sock:无法通过socket'/ var /连接到本地MySQL服务器run/mysqld/mysqld.sock'(2)Jul 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
Run Code Online (Sandbox Code Playgroud)
在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'
Run Code Online (Sandbox Code Playgroud)
如果我使用127.0.0.1它可以工作(不理想,因为我更喜欢套接字的速度.)另外,如果我用postmap测试套接字它的工作原理:
# postmap -q "bholly@example.org" mysql:/etc/postfix/mysql-yaa-aliases.cf
bholly@example.org, bholly@autoreply.example.org
Run Code Online (Sandbox Code Playgroud)
当我在trivial-rewrite守护进程上使用strace时,我得到:
connect(11, {sa_family=AF_FILE, path="/var/run/mysqld/mysqld.sock"}, 110) = -1 ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
使用postmap的strace我得到:
connect(4, {sa_family=AF_FILE, path="/var/run/mysqld/mysqld.sock"}, 110) = 0
Run Code Online (Sandbox Code Playgroud)
顺便说一句 - 目前正在运行Postfix 2.7,但故障仍显示为2.9
发现它:) - 平凡重写发生在chroot jail中,因此套接字文件REALLY不存在.
解决方案(感谢https://serverfault.com/questions/229389帮我解决这个问题)是将其添加到/ etc/fstab:
/var/run/mysqld /var/spool/postfix/var/run/mysqld bind defaults,bind 0 0
Run Code Online (Sandbox Code Playgroud)
因此允许Postfix保持其chroot配置,并允许它访问mysql套接字.
| 归档时间: |
|
| 查看次数: |
6940 次 |
| 最近记录: |