postfix 错误致命:表查找

postfix 错误致命:表查找

这里是 mail.log

server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld
/mysqld.sock' (2)
    Mar 23 23:07:19 ubuntu postfix/trivial-rewrite[6417]: fatal: mysql:/etc/postfix/mysql_virtual_alias_maps.cf(0,lock|fold_fix): table lookup problem
    Mar 23 23:07:20 ubuntu postfix/smtpd[6401]: warning: problem talking to service rewrite: Success
    Mar 23 23:07:20 ubuntu postfix/cleanup[6296]: warning: problem talking to service rewrite: Connection reset by peer
    Mar 23 23:07:20 ubuntu postfix/master[6291]: warning: process /usr/lib/postfix/trivial-rewrite pid 6417 exit status 1
    Mar 23 23:07:20 ubuntu postfix/master[6291]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling

netstat -l|grep mysql

tcp        0      0 localhost:mysql         *:*                     LISTEN     
unix  2      [ ACC ]     STREAM     LISTENING     10671    /var/run/mysqld/mysqld.sock

我可以通过这个连接

mysql -u postfix -h 127.0.0.1 -p postfix

答案1

启动本地 MySQL 服务器。

答案2

MySQL 通常有两种方式连接它:Unix套接字和IP地址。

在上面的错误信息中,Postfix 使用套接字,而您的测试使用 IP 地址。

检查套接字是否存在以及是否位于 Postfix 认为的位置(/var/run/mysqld/mysqld.sock)。

还要检查 Postfix 使用的用户名和密码是否通过套接字对您有效。MySQL 权限关心用户名、密码连接的来源。您可以从一个 IP 地址连接并不意味着您可以从另一个 IP 地址连接。这意味着,如果您从不同的地方连接,则使用相同的用户名,您可以拥有不同的密码和权限。这还包括通过 Unix 套接字连接。确保您的测试以与 Postfix 连接相同的方式进行。

答案3

您的操作系统版本和 mysql 版本是什么?根据它们的版本,您可以使用类似 /etc/init.d/mysql (在某些版本中可能是 mysqld) status 来查明它是否在 ubuntu 中运行。

然后您可以使用locate mysqld.sock来查明套接字文件是否实际位于postfix用户尝试使用的位置。

相关内容