Erro de SQL do Ubuntu do servidor de e-mail

0

Eu tenho tentado configurar um servidor, mas não funciona. Eu recebi este erro:

23:59:43 correio dovecot: auth-worker (14604): Erro: sql ([email protected], ip): Falha na consulta de senha; Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MariaDB para a sintaxe correta para usar perto dos usuários '\ ROM WHERE userid =' [email protected] 'e mysql_pass = password (' psw 'na linha 1.

Aqui minha configuração:

driver = mysql   connect = "host = 127.0.0.1 dbname = dbname usuário = userdb senha = psw"   default_pass_scheme = SHA512-CRYPT
password_query = SELECT NULL como senha, 'Y' como nopassword, userid como usuario \ FROM usuarios $
user_query = SELECT nome de usuário AS usuário, domínio, senha FROM contas WHERE username = '% n $
iterate_query = SELECT nome de usuário, domínio FROM contas onde sendonly = false;

Minha configuração: Eu instalei o mariadb, dovecot, postfix, postfixadmin.

Quando eu crio uma conta de e-mail com postfixadmin e uso o mesmo banco de dados com o dovecot, recebo o erro. O que estou fazendo de errado?

Eu não sou muito experiente. Se você precisar de mais informações, por favor, pergunte.

Cyberpunk7711
fonte

Respostas:

0

O erro que você tem é o seguinte; ênfase ousada é minha:

23:59:43 correio dovecot: auth-worker (14604): Erro: sql ([email protected], ip): Falha na consulta de senha; Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MariaDB para o sintaxe certa para usar perto de usuários \\ ROM WHERE userid = '[email protected]' e mysql_pass = password ('psw' na linha 1.

O valor da consulta que você definiu é o seguinte; mais uma vez a ênfase ousada é minha:

SELECT NULL como senha, 'Y' como nopassword, userid Usuários AS user \ FROM $

Parece assim \ é um problema. Mas também algumas das perguntas estranhamente têm um $ no final deles como estes:

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

Parece que você copiou e colou essas consultas de alguma saída de linha de comando que truncou as consultas. A solução? Obtenha as consultas completas reais e coloque-as na configuração.

Além disso, o que é isso?

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

Por que esses dois driver e connect valores na mesma linha?

Em geral, as peculiaridades gerais do formato que você está vendo fazem com que a configuração pareça uma bagunça. Não é fácil para nós resolvê-lo, mas basicamente eu recomendo reescrever a configuração corretamente com consultas completas, citações em torno de valores (se a configuração funcionar dessa forma) e configurar corretamente cada valor em cada linha.

JakeGould
fonte