mysl4.1 -> mysql5.045 Select where content='ворота'

clevel

Новичок
mysl4.1 -> mysql5.045 Select where content='ворота'

День добрый!
Переношу базы анных на дополнительный сервер, на котором поставлена муска, версия 5.045

На четвертой версии запрос вида:
SELECT *
FROM table
WHERE content='ворота'

отрабатывает нормально, однако в пятерке это выдает пустой результат.
для таблицы стоит: DEFAULT CHARSET=cp1251
для данного поля стоит: content` char(20) character set cp1251 collate cp1251_bin NOT NULL default ''

Куда копать?
П.с.: Сейчас смотрю доки на mysql.com, изменения в версиях и т.д.
Но пока слабо представляю, куда копать..
 

Krishna

Продался Java
Тупо проверь лежат ли данные в дампе в нужной кодировке (1251).
И не забудь убедиться, что при заливке данных клиент работает в той же кодировке
 

phprus

Moderator
Команда форума
Если установлен режим cp1251_bin, то проверь чтобы совпадали регистры того что в запросе и того что в базе.
 

clevel

Новичок
1. у меня на основно сервере стояит 4.1 муська
2. заливаю данные на второй сервак, где 5-ка муськи, не через mysqldump, а банально через копирование файлов (бинарников) из директории /usr/local/mysql/var
При работе через пхп (вывод/ввод) на сайте - все к.
через пхпмайадмин - тоже все прилично.
Я уж было обрадовался, что все прокатило..

И тут такие запросы не проходят :(

-~{}~ 17.09.07 15:28:

насчет регистра: открываю на просмотр таблицу эту копирую запись, например, "ворота".
И ставлю запрос... where content='ворота'
пусто :(

-~{}~ 17.09.07 15:32:

серверные переменные:
character set client cp1251
character set connection utf8
(Глобальное значение) cp1251
character set database cp1251
character set filesystem binary
character set results cp1251
character set server cp1251
character set system utf8
collation connection utf8_unicode_ci
(Глобальное значение) cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci

-~{}~ 17.09.07 15:56:

в my.cnf стоит:
collation-server=cp1251_general_ci
character-set-server=cp1251

насколько я понял, это принудительно в cp1251 кодировку все переводит..

-~{}~ 17.09.07 16:05:

такой вариант прокатывает:
WHERE content
COLLATE cp1251_general_ci = 'ворота'

-~{}~ 17.09.07 16:13:

но при этом вставке COLLATE cp1251_general_ci у меня на таблице с 1млн. записей акой тормозняк начинается..

-~{}~ 17.09.07 16:57:

Подскажите, плз, как посмотреть. в какой кодировке на самом деле находятся данные в таблице?
Просомтр ручками бинарника ничего не дал.. вроед все показывается кириллицей, windows-1251
 

Krishna

Продался Java
заливаю данные на второй сервак, где 5-ка муськи, не через mysqldump, а банально через копирование файлов (бинарников) из директории /usr/local/mysql/var
С головой нормально всё? Переливать базу одной версии (причем ни много ни мало ветки) субд в другую и удивляться проблемам - это сильно.
 

clevel

Новичок
Ну зачем так грубо....
Я понимаю, что надо все делать по классике, но у меня возник ряд проблем:
- дамп просто так не вставал, там приходилось ручками править.
- очень долго генерировался и вставлялся дамп, так как есть таблицы, где индексы занимают больше мста, чем сами данные.

Поэтому как выход - скопировал файлы - все запустилос без проблем. А эта проблема вылезла позже..
И как раз вышеуказанные две причины - были на этой таблице :(

-~{}~ 17.09.07 20:07:

Решил проблему :)
Просто поменял collation для данного поля.
Был cp1251_bin стал cp1251_general_ci
все заработало..

Спасибо, что уделили время.
Извиняйте, если не по правилам действую...
 
Сверху