Я внес соответствующие изменения в postfix, чтобы mysql 5.7 работал как база данных вместо Maria DB. Я могу проводить тесты, и все вроде работает на сервере. Однако я не могу войти в свою учетную запись из своего почтового клиента. Я по-прежнему получаю ошибки «неверный вход», и я проверял адрес электронной почты и пароль несколько раз.
Я заметил, что postfix использует параметр «encrypt» для пароля в таблице пользователей, а также что в Mysql 5.7 есть возможность добавить ключ для этой функции. В версии 5.6 и ниже этого не было. Кто-нибудь знает конкретно, является ли это проблемой, и если да, есть ли исправление для postfix, чтобы куда-то поместить ключ шифрования? Или postfix просто НЕ совместим с Mysql 5.7? Я не могу запустить mariaDB на этом сервере.
Заранее спасибо.
EDIT: во многих конфигурациях по умолчанию есть два 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'
(удалить <>)
Что касается postfix, не должно быть разницы между mysql и mariadb. В постфиксе вы можете указать, какие команды SQL следует использовать для доступа к базе данных. Не используйте шифрование mysql для паролей, оно менялось в прошлом и может измениться снова.