无法连接到‘127.0.0.1’+ Postfix 上的 MySQL 服务器

无法连接到‘127.0.0.1’+ Postfix 上的 MySQL 服务器

我刚刚安装了 Postfix 并将其配置为使用 MySQL。完成此操作后,它没有发送任何电子邮件,因此我检查了 /var/log/mail.log,结果显示以下内容:

postfix/trivial-rewrite[5283]: fatal: proxy:mysql:/etc/postfix/mysql-domains.cf(0,lock|fold_fix): table lookup problem
postfix/cleanup[5258]: warning: AFCDC30437: virtual_alias_maps map lookup problem for [email protected]
postfix/master[4761]: warning: process /usr/lib/postfix/trivial-rewrite pid 5282 exit status 1
postfix/proxymap[4126]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (110)

在 mysql-domains.cf 中我使用:

Hosts    127.0.0.1

我可以用这个连​​接到 MySQL:

mysql -u postfixuser -p

但我无法通过这种方式连接:

mysql -u postfixuser -h 127.0.0.1 -p maildbname

此外,当我运行 netstat -l 时,它会返回:

tcp        0      0 localhost:mysql         *:*                     LISTEN

我尝试将我的主机更改为:

Hosts    localhost

但后来我收到一个套接字错误:

postfix/cleanup[4870]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

我也在 MySQL 配置文件中进行了此项设置:

bind-address            = 127.0.0.1

知道可能是什么问题吗?

答案1

在您的 postfix mysql 连接部分中,我认为您想要:

hosts = unix:/var/run/mysqld/mysqld.sock

而不是 127.0.0.1 用于 postfix。或者,添加授权以允许 postfix 通过 127.0.0.1 而不是 localhost 进行连接。

grant all on postfix.* to [email protected] identified by 'asdf';

Postfix 通过 TCP 进行连接,您可能已为套接字连接定义了授权。修复其中一个问题应该可以解决问题。

答案2

我怀疑防火墙可能会搞乱一切。尝试通过 telnet 连接到本地主机的 3306 端口:telnet localhost 3306telnet 127.0.0.1 3306,看看是否可以连接。

如果没有,请尝试禁用防火墙:sudo ufw disable,然后再次尝试 telnet。如果可以连接,则我们已确定您的防火墙设置是罪魁祸首,您需要在您的lo接口上允许 TCP 访问 127.0.0.1 的端口 3306。

相关内容