The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Как победить в postfix lookup ошибку Illegal mix of collations?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Как победить в postfix lookup ошибку Illegal mix of collations?"  +/
Сообщение от КриоМух (ok), 30-Июн-24, 19:35 
Добрый день, Товарищи!

Прошу совета. Почтовик у меня, стандартный postfix,mysql,dovecot, freebsd и всё такое. Всё работает нормально.
На днях видимо настроили как-то коряво перенаправление писем с яндекса на адрес почтовый на этом сервере, и этот адрес КУДА должны идти письма - написали коряво, видимо там символы русские добавили или ещё что. В логе это выглядит так:


Jun 30 21:12:14 warning: mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf: query failed: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='
Jun 30 21:12:14 mx postfix/smtpd[19]: warning: mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf lookup error for "�M-^Aeo@mydomain.ru"
Jun 30 21:12:14 mx postfix/smtpd[19]: NOQUEUE: reject: RCPT from forward501b.mail.yandex.net[178.154.239.145]: 451 4.3.0 <�M-^Aeo@mydomain.ru>: Temporary lookup failure; from=<yandex-address@yandex.ru> to=<�M-^Aeo@mydomain.ru> proto=ESMTP helo=<forward501b.mail.yandex.net>

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

Вот настройка lookup'а в MySQL, тоже стандартная:

hosts   = unix:/var/mysql/mysql.sock
user    = postuser
password= PASS
dbname  = postdb

query   = SELECT aa.goto FROM alias aa JOIN domain bb ON bb.domain=aa.domain WHERE aa.address='%s' AND aa.active='1'


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Как победить в postfix lookup ошибку Illegal mix of collations?"  +/
Сообщение от Pahanivo пробегал (?), 30-Июн-24, 22:49 
Анекдот про связиста в армии и автомат знаешь?
У меня уходит - проблема где-то у вас! (R)

ПыСы: Тебя не смущает что оно с ямыла ушло? Загуглить ошибку пробовал? Кодировки в своей базе проверял?

Ответить | Правка | Наверх | Cообщить модератору

2. "Как победить в postfix lookup ошибку Illegal mix of collations?"  +/
Сообщение от pavel2000 (?), 08-Июл-24, 13:27 
>[оверквотинг удален]
> поправят, мне интересно - как можно сделать, чтобы мой почтовик не
> валился в SQL ошибку, а отвечал корректно, что адреса такого нет.
> Экранирование там как-то включить или ещё что-то может?
> Вот настройка lookup'а в MySQL, тоже стандартная:
>
hosts   = unix:/var/mysql/mysql.sock 
> user    = postuser
> password= PASS
> dbname  = postdb
> query   = SELECT aa.goto FROM alias aa JOIN domain bb
> ON bb.domain=aa.domain WHERE aa.address='%s' AND aa.active='1'

WHERE aa.address= CONVERT( _utf8 '%s' USING latin1 )

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру