无法在“127.0.0.1”+ Postfix上连接到MySQL服务器

我刚刚安装了Postfix,并将其configuration为使用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' 

我也有这个在MySQLconfiguration文件中设置:

 bind-address = 127.0.0.1 

任何想法可能是错的?

在你的postfix mysql连接部分,我想你想要:

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

而不是127.0.0.1的后缀。 或者,添加一个授权允许postfix通过127.0.0.1而不是本地主机连接。

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

Postfix通过TCP连接,你可能有套接字连接定义的授权。 修复一个或另一个应该修复它。

我怀疑防火墙可能会搞砸了。 尝试telnet到端口3306上的本地主机: telnet localhost 3306telnet 127.0.0.1 3306 ,看看是否连接。

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