我对 postfix 进行了适当的更改,让 mysql 5.7 代替 Maria DB 作为数据库运行。我可以运行测试,服务器上一切似乎都运行正常。但是,我无法从电子邮件客户端登录我的帐户。我继续收到“无效登录”错误,我多次检查了电子邮件地址和密码。
我注意到 postfix 使用“加密”选项来加密用户表上的密码,而且在 Mysql 5.7 上,有一个为此功能添加密钥的选项。但在 5.6 及以下版本中并非如此。有谁知道这是否是问题所在,如果是,是否有针对 postfix 的修复程序可以将加密密钥放在某处?或者 postfix 只是与 Mysql 5.7 不兼容?我无法在此服务器上运行 mariaDB。
提前致谢。
编辑:许多默认配置中有两个 SQL 查询在 Mysql 5.7 中不起作用
在mysql-virtual_domains.cf中:
SELECT domain AS virtual FROM domains WHERE domain='%s'
应改为
SELECT domain AS `virtual` FROM domains WHERE domain='%s'
(在保留关键字中添加反引号)
在 mysql-virtual_mailboxes.cf 中
SELECT CONCAT(SUBSTRING_INDEX(`email`,<'@'>,-1),'/',SUBSTRING_INDEX(`email`,<'@'>,1),'/') FROM users WHERE email='%s'
应改为
SELECT CONCAT(SUBSTRING_INDEX(`email`,'@',-1),'/',SUBSTRING_INDEX(`email`,'@',1),'/') FROM users WHERE email='%s'
(删除<>)
答案1
就 postfix 而言,mysql 和 mariadb 之间应该没有区别。在 postfix 中,您可以指定应使用哪些 SQL 命令来访问数据库。不要对密码使用 mysql 特定的加密,它过去已经改变过,并且可能再次改变。