Назад | Перейти на главную страницу

Как настроить Postfix для Mysql 5.7

Я внес соответствующие изменения в 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 для паролей, оно менялось в прошлом и может измениться снова.