我刚刚在 Ubuntu 16.04 上安装新的邮件服务器,开始安装和配置 postfix 和 mysql:
apt install postfix postfix-mysql mysql-server mysql-client
配置 postfix(3.1)并为邮件创建数据库后,我尝试测试 postfix 是否可以访问数据库并检索所有域/用户:
postmap -q mydomain.com mysql:/etc/postfix/mysql-virtual_domains.cf
我收到错误:
postmap: fatal: unsupported dictionary type: mysql
看来我的服务器由于某种原因不支持 mysql!
# postconf -m
btree
cidr
environ
fail
hash
inline
internal
memcache
nis
pipemap
proxy
randmap
regexp
socketmap
static
tcp
texthash
unionmap
unix
/etc/postfix# cat dynamicmaps.cf
# dict-type so-name (pathname) dict-function mkmap-function
cdb postfix-cdb.so.1.0.1 dict_cdb_open mkmap_cdb_open
ldap postfix-ldap.so.1.0.1 dict_ldap_open
mysql postfix-mysql.so.1.0.1 dict_mysql_open
pcre postfix-pcre.so.1.0.1 dict_pcre_open
pgsql postfix-pgsql.so.1.0.1 dict_pgsql_open
sqlite postfix-sqlite.so.1.0.1 dict_sqlite_open
请问有什么帮助吗?
答案1
安装后postfix-mysql
尝试重新启动 postfix:
postfix reload
答案2
在花费大量时间解决这个问题后,我找到并解决了它:
mysql
将文件中的行更改/etc/postfix/dynamicmaps.cf
为:
mysql /usr/lib/postfix/postfix-mysql.so.1.0.1 dict_mysql_open
然后重新加载 postfix postfix reload
。
答案3
感谢您的案例,我意识到我忘记安装 postfix-mysql。安装后,
apt install postfix-mysql
这条线,
mysql /usr/lib/postfix/postfix-mysql.so.1.0.1 dict_mysql_open
已自动添加到 /etc/postfix/dynamicmaps.cf,但据我所知,您的情况并非如此。很奇怪。