![Dovecot-auth:致命:未知数据库驱动程序“pgsql”](https://linux22.com/image/568413/Dovecot-auth%EF%BC%9A%E8%87%B4%E5%91%BD%EF%BC%9A%E6%9C%AA%E7%9F%A5%E6%95%B0%E6%8D%AE%E5%BA%93%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E2%80%9Cpgsql%E2%80%9D.png)
我正在尝试配置 Dovecot + Postfix + PostfixAdmin 以支持 postgresql。我成功配置了 postfix 以将电子邮件发送到我的域的别名,现在我想在我的服务器上配置实际的邮箱支持。我按照 dovecot 2 wiki 上的数据库支持配置选项进行操作(http://wiki.dovecot.org/AuthDatabase/SQL), dovecot 启动时没有出现错误,但在第一次尝试通过 IMAP 连接时,dovecot 在邮件日志中发出抱怨:
auth: Fatal: Unknown database driver 'pgsql'
我确信 dovecot 有 postgres 支持,这里是 dovecot --build-options 的输出:
Build options: ioloop=epoll notify=inotify ipv6 openssl io_block_size=8192
Mail storages: cydir dbox maildir mbox mdbox raw shared
SQL driver plugins: mysql postgresql sqlite
Passdb: checkpassword ldap pam passwd passwd-file shadow sql
Userdb: checkpassword ldap(plugin) nss passwd prefetch passwd-file sql
附加信息:
/etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
driver = pgsql
# Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
args = /etc/dovecot/conf.d/dovecot-sql.conf.ext
}
对于驱动程序部分,我尝试了:“pgsql”、“postgresql”和“sql”,但总是出现错误。
/etc/dovecot/conf.d/dovecot-sql.conf.ext
connect = host=localhost dbname=postfix user=postfix password=secret
default_pass_scheme = CRYPT
password_query = SELECT userid as user, password FROM users WHERE userid = '%u'
user_query = SELECT '/home/'||home AS home, uid, gid FROM users WHERE userid = '%u'
你知道我遗漏了什么吗?谢谢。
答案1
在 CentOS 6 上,不仅需要安装 dovecot 包,还需要安装附加模块,在这种情况下,还需要包 dovecot-pgsql 来支持 postgresql。
/etc/dovecot/conf.d/auth-sql.conf.ext 中驱动程序行的正确语法是:
driver = sql
然后在 /etc/dovecot/conf.d/dovecot-sql.conf.ext 中指定正确的驱动程序
driver = pgsql