You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生产环境Postfix与Dovecot连接禁用SSL模式的MySQL8失败的解决方案求助

生产环境Postfix与Dovecot连接禁用SSL模式的MySQL8失败的解决方案求助

大家好,我这边生产环境跑着Postfix 3.1和Dovecot,最近把MySQL从5.6升级到了8,还迁移到了新服务器mysql03,结果遇到了SSL相关的连接问题,折腾了半天还是没搞定Dovecot的部分,来求助大家!

问题背景

我用命令行连接新的mysql03服务器时,直接执行:

mysql -hmysql03 -uvimbadmin -p vimbadmin

会报错:

ERROR 2026 (HY000): SSL connection error: unknown error number

后来发现是SSL的问题,加上--ssl-mode=disabled参数就能正常连接了:

mysql --ssl-mode=disabled -hmysql03 -uvimbadmin -p vimbadmin

为了让命令行默认禁用SSL,我在/etc/mysql/conf.d/mysql.cnf里加了配置:

[mysql]
ssl-mode=DISABLED

[client]
ssl-mode=DISABLED

之后再用命令行连接就不用加参数了,正常没问题。

Postfix的临时解决办法

Postfix这边一开始也连不上mysql03,我折腾了半天没找到合适的配置方式,就用了个临时 workaround:把alias和mailboxes的数据库类型从mysql改成了texthash,然后写了个脚本定期生成texthash文件,现在Postfix能正常工作,但这显然不是长久之计。

Dovecot的难题

现在Dovecot还是连的旧服务器mysql02来维持服务,我的目标是切换到mysql03,但改了配置之后连不上。当前/etc/dovecot/dovecot-sql.conf.ext的配置内容如下:

driver = mysql
connect = host=mysql02 user=vimbadmin password=*** dbname=vimbadmin
default_pass_scheme = MD5
password_query = SELECT username as user, password as password, \
homedir AS userdb_home, maildir AS userdb_mail, \
concat('*:bytes=', quota) AS userdb_quota_rule, uid AS userdb_uid, gid AS userdb_gid \
FROM mailbox \
WHERE username = '%Lu' AND active = '1' \
AND ( access_restriction = 'ALL' OR LOCATE( '%Us', access_restriction ) > 0 )
user_query = SELECT homedir AS home, maildir AS mail, \
concat('*:bytes=', quota) as quota_rule, uid, gid \
FROM mailbox WHERE username = '%u'

现在我有两个疑问想请教大家:

  • 有没有办法让Dovecot像Postfix那样,用文件来存储用户、邮箱等信息,不用直接连接数据库?
  • 如果没办法用文件替代的话,我该修改Dovecot的哪些配置,才能让它成功连接到禁用SSL模式的MySQL8服务器?

备注:内容来源于stack exchange,提问作者Sergi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:14:36