powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Error: Illegal mix of collations
4 сообщений из 4, страница 1 из 1
Error: Illegal mix of collations
    #32777246
jeni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Заапгрейдил mysql c 4.0.22 на 4.1.7
в перловых скриптах начались вот такие ошибки:

DBD::mysql::st execute failed: Illegal mix of collations (cp1251_general_ci,IMPL
ICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=' at /bla-bla-bla/script.pl line NNNN

вот my.cnf:
==================
[client]
...
character-sets-dir = /usr/share/mysql/charsets
default-character-set = cp1251

[mysqld]
...
character-sets-dir = /usr/share/mysql/charsets
default-character-set = cp1251

[mysql]
...
character-sets-dir = /usr/share/mysql/charsets
default-character-set = cp1251
====================
вроде во всех секциях поставил dafault charset cp1251, а когда смотрю SHOW VARIABLES то вижу вот такую кашу:
character_set_client = latin1
character_set_connection = latin1
character_set_database = cp1251
character_set_results = latin1
character_set_server = cp1251
character_set_system = utf8
character_sets_dir = /usr/share/mysql/charsets
collation_connection = latin1_swedish_ci
collation_database = cp1251_general_ci
collation_server = cp1251_general_ci

причем если работаю с базой через /usr/bin/mysql то все нормално работает.
а если через клиента (perl DBI DBD) то вылетает сабж если в select-е есть where где сравниваются char-ы или varchar-ы.

Почему для клиента не выставляется DEFAULT CHARSET (character_set_client = latin1 ) ???
...
Рейтинг: 0 / 0
Error: Illegal mix of collations
    #32777325
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитайте пожалуйста документацию http://dev.mysql.com/doc/mysql/en/Charset.html%5D%D0%B7%D0%B4%D0%B5%D1%81%D1%8C%5B/url] и особенно здесь .

В качестве быстрой заплатки для ваших проложений, после установления соединения с сервером, пошлите первой команду

set names koi8r

(Я предполагаю что вы под юниксами (по вашим конфигам), если нет, то вместо koi8r - ту кодировку, котоая на вашей _клиентской_ машине)
...
Рейтинг: 0 / 0
Error: Illegal mix of collations
    #32777334
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитайте пожалуйста документацию
здесь и особенно здесь .

В качестве быстрой заплатки для ваших проложений, после установления соединения с сервером, пошлите первой команду

set names koi8r

(Я предполагаю что вы под юниксами (по вашим конфигам), если нет, то вместо koi8r - ту кодировку, котоая на вашей _клиентской_ машине)
...
Рейтинг: 0 / 0
Error: Illegal mix of collations
    #32777445
jeni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> В качестве быстрой заплатки для ваших проложений, после установления соединения с сервером, пошлите первой команду

> set names koi8r
Вот это помогло спасибо. но как-то не красиво.

> (Я предполагаю что вы под юниксами (по вашим конфигам), если нет, то вместо koi8r - ту кодировку, котоая на вашей _клиентской_ машине)[/quot]

У меня Linux RH 7.3, mysql стоял из пакетов и апгрейдил я из пакетов.
А раздел связанный с чарсетами вроде хорошо пересмотрел 2-3 раза (конечно насколько позволил мой англицкий). Я и базы в 4.0 задампил, потом накатил 4.1 и залил базы из дапмпа.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Error: Illegal mix of collations
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]