ISPmail 教程

ISPmail 教程

我正在按照著名的教程进行操作,现在这一步

但是我在尝试运行时遇到了问题

postmap -q example.org mysql:/etc/postfix/mysql-virtual-box-domains.cf

我得到:

postmap:警告:连接到 mysql 服务器 127.0.0.1:在“读取初始通信包”时与 MySQL 服务器失去连接,系统错误:0

但是我可以通过 mysql: 连接到 mysqld mysql -u mailuser -p,密码为“foo”。.cf 如下所示:

user = mailuser
password = foo
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'

可能是什么问题呢?

附录

my.cf 中的相关部分如下所示:

# The MySQL server
[mysqld]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
bind-address = 127.0.0.1

答案1

运行 postmap 并获取更详细的输出,然后在此处发布输出。希望您能从中获得一些有用的信息。

postmap -vvvq example.org mysql:/etc/postfix/mysql-virtual-box-domains.cf

答案2

mysqld 可以监听本地套接字和 tcp/ip 套接字。默认情况下,它连接到本地套接字(这是在命令行上运行“mysql”时连接到它的方式)。postgres 正在尝试通过 localhost 上的 tcp/ip 套接字进行连接,但没有成功。

因此,让 mysqld 监听两种接口类型(或者弄清楚为什么不这样做),或者让 postgres 使用本地套接字。

为了模拟 postgres 在命令行上所做的事情,你可以像这样运行它:

mysql -u mailuser -h 127.0.0.1 -p

相关内容