Postfix 错误:警告 mysql:/etc/postfix/maps/alias.cf 查找错误

Postfix 错误:警告 mysql:/etc/postfix/maps/alias.cf 查找错误

昨天我设置了一个邮件服务器教程中所有操作都正常,但今天我无法发送或接收邮件。当我想用我的[电子邮件保护]Thunderbird 要求我输入密码,但不接受(我检查了 3 个不同的邮件地址)。

postfix/pickup[15575]: 8724D2C411F5: uid=33 from=<www-data>
postfix/cleanup[16104]: 8724D2C411F5: message-id=<20130715165704.8724D2C411F5@Ubuntu-1204-precise-64-minimal.localdomain>
postfix/cleanup[16104]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
warning  mysql: /etc/postfix/maps/alias.cf lookup error for "[email protected]"
warning: A3C912C411F5: virtual_alias_maps map lookup problem for "[email protected]" -- deferring delivery

[电子邮件保护]是我的个人地址。

ls -la /etc/postfix
drwxr-xr-x   4 root root  4096 Jul 14 11:06 .
drwxr-xr-x 124 root root 12288 Jul 14 22:51 ..
-rw-r--r--   1 root root   329 Jul 14 09:50 dynamicmaps.cf
-rw-r--r--   1 root root  1651 Jul 14 10:49 main.cf
-rw-r--r--   1 root root  1286 Jul 14 09:50 main.cf.default
drwxr-xr-x   2 root root  4096 Jul 15 18:42 maps
-rw-r--r--   1 root root  4798 Jul 14 09:57 master.cf
-rw-r--r--   1 root root  5531 Jul 14 09:50 master.cf.default
-rw-r--r--   1 root root 19707 Feb 20 21:03 postfix-files
-rwxr-xr-x   1 root root  8729 Feb 20 21:03 postfix-script
-rwxr-xr-x   1 root root 26498 Feb 20 21:03 post-install
drwxr-xr-x   2 root root  4096 Jul 14 10:07 sasl


ls -la /etc/postfix/maps
total 20
drwxr-xr-x 2 root    root    4096 Jul 15 18:42 .
drwxr-xr-x 4 root    root    4096 Jul 14 11:06 ..
-rwx------ 1 postfix postfix  158 Jul 15 18:42 alias.cf
-rwx------ 1 postfix postfix  170 Jul 14 10:05 domain.cf
-rwx------ 1 postfix postfix  235 Jul 14 10:05 user.cf

在MYSQL中:

SHOW GRANTS FOR root@%
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION

/etc/mysql/my.cnf当我将绑定地址设置为 127.0.0.1 时,我可以发送和接收电子邮件,但无法打开我的网站:

ERROR: SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'mywebsite.com' (111)

如果我将其改回网站的 IP 地址,网站可以加载,但我无法发送或接收电子邮件。

/etc/hosts

my.ip.address www.example.com Ubuntu-1204-precise-64-minimal

如果我注释掉 bind-address 参数一切运行正常,但我认为该参数存在是有原因的。有什么想法吗?

答案1

当你注释掉 bind 参数时,mysql 将绑定到所有接口。这样你的 mysql 服务器就会暴露在互联网上,所以如果你需要让 mysql 监听面向互联网的接口,因为另一个远程服务器需要使用它,那么你可以使用iptables或者主机允许过滤流量以限制您的攻击面。

答案2

作为由@Shutupsquare 解释,删除 bind-address 将让 MySQL 监听所有接口,包括IP-address-of-mywebsite.com和环回IP地址127.0.0.1。

  • 如果您的网站与 postfix 位于同一台服务器上,那么更改网站的 MySQL 参数将很有用,这样它将连接到 127.0.0.1,而不是连接到 IP-address-of-mywebsite.com。然后设置bind-address为 127.0.0.1。它将阻止其他主机连接您的 MySQL,因为 MySQL 仅监听环回 IP 地址。

  • 如果你的网站在其他主机上,那么来自@Shutupsquare 的防火墙解决方案将限制可以连接到 MySQL 的 IP 地址

相关内容