Я пытался настроить сервер, но он не работает. Я получил эту ошибку:

23:59:43 mail dovecot: auth-worker(14604): Ошибка: sql(test@mydomain.eu, ip): запрос пароля не выполнен; У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с '\ ROM users WHERE userid =' test@mydomain.eu 'и mysql_pass = password(' psw 'в строке 1.

Вот мой конфиг:

driver = mysql connect = "host = 127.0.0.1 dbname = dbname user = userdb password = psw" default_pass_scheme = SHA512-CRYPT
password_query = SELECT NULL AS пароль, 'Y' как nopassword, идентификатор пользователя AS user \ FROM users $
user_query = ВЫБЕРИТЕ имя пользователя КАК пользователь, домен, пароль ОТ учетных записей ГДЕ имя пользователя = '% n $
iterate_query = SELECT имя пользователя, домен из учетных записей, где sendonly = false;

Мои настройки: я установил mariadb, dovecot, postfix, postfixadmin.

Когда я создаю учетную запись электронной почты с postfixadmin и использую ту же базу данных с dovecot, я получаю сообщение об ошибке. Что я делаю неправильно?

Я не очень опытный. Если вам нужна дополнительная информация, пожалуйста, спросите.

1 ответ1

0

Ошибка у вас заключается в следующем; смелый акцент мой

23:59:43 mail dovecot: auth-worker(14604): Ошибка: sql(test@mydomain.eu, ip): запрос пароля не выполнен; У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с '\ ROM users WHERE userid =' test@mydomain.eu ' и mysql_pass = password(' psw 'в строке 1.

Значение запроса, которое вы установили, выглядит следующим образом; опять жирный акцент мой

Выберите NULL AS пароль, 'Y' как nopassword, ИД пользователя AS user \ FROM users $

Похоже , что \ является проблемой. Но также некоторые из запросов имеют странный символ $ в конце, например:

SELECT NULL AS password, 'Y' as nopassword, userid AS user \ FROM users $
SELECT username AS user, domain, password FROM accounts WHERE username = '%n$ 

Похоже, вы скопировали и вставили эти запросы из некоторого вывода командной строки, который урезал запросы. Решение? Получите актуальные полные запросы и разместите их в конфиге.

Кроме того, о чем это?

driver = mysql connect = "host=127.0.0.1 dbname=dbname user=userdb password=psw"

Почему эти два driver и connect значения в одной строке?

В общем, общие странные особенности формата, которые вы видите, делают конфигурацию похожей на беспорядок. Это не простой способ решить эту проблему, но в целом я бы рекомендовал правильно переписать конфигурацию с полными запросами, кавычками вокруг значений (если конфигурация работает таким образом) и правильно установить каждое значение в каждой строке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .