MySql 4.1.13 проблемы с русскими символами на иностранном сервере

Zh0rzh

Новичок
MySql 4.1.13 проблемы с русскими символами на иностранном сервере

Значит вот такая вот беда ... (История, наверное, знакома всем до боли)

Жила-была база данных (MySql 4.0.13-nt, Php 4.3.9, Win2000).
В my.ini прописано
[mysqld]
default-character-set=cp1251

Все чудненько работало (сортировка, поиск - как полагается)
Вздумалось мне перенести эту базу (со всем проектом) к
американским друзьям (MySql 4.1.11, Php 4.3.9, FreeBSD 4.5).

Кодировка у базы данных оказалась latin1, соответствено и у все таблиц,

полей.
Отчего перестали работать сортировка и поиск.

Наивно делаю:
Код:
ALTER TABLE `s` CHANGE `name` `name` CHAR( 255 ) CHARACTER SET cp1251;
После чего Php выдает вместо кирилицы - ?????
Выполнение после конекта:
Код:
SET NAMES cp1251;
не помогает.

Решил пойти путем предложенным
10.10.2 Converting 4.0 Character Columns to 4.1 Format .

На MySql 4.0.13-nt делаю
Код:
ALTER TABLE `s` CHANGE `name` `name` BLOB
заливаю на MySql 4.1.11 и делаю:
Код:
ALTER TABLE `s` CHANGE `name` `name` CHAR( 255 ) CHARACTER SET cp1251;
После этого опять - ??????, но если выполнить после конекта SET NAMES cp1251; русские символы отображаются как следует.
Я уж было обрадовался, да не тут ту было
mysqldump генерирует INSERT все с теми же ?????

Я в замешательстве.
Посоветуйте что нибудь.

Что же нужно сделать, о чем же мне написать саппорту, что бы у меня все было OK? :)
точнее:
1. Вывод пользователю правильной кирилцы.
2. Правильные сортировка и поиск по русским буквам.
3. Правильная кирилица в mysqldump.
 

Screjet

Новичок
1. ALTER DATABASE `my_cool_db` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci (один раз, для базы)
2. Заливаем дамп
3. После коннекта:
- SET CHARACTER SET cp1251
- SET NAMES cp1251

4. Наслаждаемся муськой 4.1
 

Zh0rzh

Новичок
1. ALTER DATABASE `my_cool_db` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci (один раз, для базы)
2. Заливаем дамп
3. После коннекта:
- SET CHARACTER SET cp1251
- SET NAMES cp1251
Тщетно.

Работает только если текстовые поля предварительно сделать BLOB типом, а залив на MySql 4.1.11 уже там обратно установить требуемый тип. После SET NAMES становится все нормально
Собственно подобные манипуляции я делал
На MySql 4.0.13-nt делаю

code:ALTER TABLE `s` CHANGE `name` `name` BLOB

заливаю на MySql 4.1.11 и делаю:

code:ALTER TABLE `s` CHANGE `name` `name` CHAR( 255 ) CHARACTER SET cp1251;
Проблема только в одном - как сказать mysqldump'u, что бы он тоже делал SET NAMES. Потому что он все равно выводит ????

-~{}~ 11.05.05 15:28:

Пробовал так

mysqldump --host=*** -u*** -p*** --default-character-set=cp1251 --tables test_db s1 > s.sql

Бесполезно

-~{}~ 11.05.05 15:41:

Какой то странный там mysqldump

На команду mysqldump --host=*** -u*** -p*** --default-character-set=cp1251 --set-charset --tables test_db s1 > s.sql

mysqldump: unrecognized option `--set-charset'

-~{}~ 11.05.05 15:50:

bash$: mysqldump -V
mysqldump Ver 8.21 Distrib 3.23.49, for portbld-freebsd4.5 (i386)

Для MySql 4.1.11 Какой версии должен быть mysqldump?
 

Screjet

Новичок
Ты ничего не напутал?
Вобщем труси хостера на предмет "ничего не помогает".
 
Сверху