cp1251->utf8

Фанат

oncle terrible
Команда форума
ну щас.
как раз замена кодировки ДАМПА там есть. default-charset.
ты можешь получить базу в любой желаемой кодировке. что и требовалось доказать.
 

vovanium

Новичок
ДАМПА там есть. default-charset
Ты не совсем понял задачу, при этом не меняются кодировки в CREATE TABLE, кодировку самого дампа оно меняет, но при восстановлении у таблиц будет та же кодировка, т.е. указав default-charset utf-8 и сделав дамп таблиц cp1251, а потом востановив обратно получится всё та же cp1251, чтобы получить utf-8, нужно либо вручную исправить кодировки в CREATE TABLE, либо использовать дампер :)
default-charset это просто вызов SET_NAMES.
 

Gas

может по одной?
vovanium
в большинстве ситуаций поможет это исправит --compatible="mysql40"
 

vovanium

Новичок
Gas
в большинстве ситуаций поможет это исправит --compatible="mysql40"
я писал об этом, это и есть SQL_MODE, но он убирает все опции которые появились в 4.1 и выше, а не только кодировки, поэтому не совсем равнозначно.

с чего это они не поменяются?
потому что SET NAMES это кодировка соединения, по сути означает только то что клиент хочет получить данные в utf-8, mysql преобразовывает данные из cp1251 и отдает utf-8, при обратном процессе, mysql создает таблицу у которой в CREATE TABLE указана cp1251, соответственно хранит данные в этой кодировки, и получая данные из дампа, преобразовывает данные из utf-8 в кодировку таблицы, т.е. cp1251. Можешь проверить :)

-~{}~ 19.06.08 19:35:

в общем-то я же говорил выше mysqldump писали не боги, и ничего сверхъестественного он не умеет, обычный MySQL-клиент 4 тысячи строк исходник, включая коменты и маны, с обычными SQL-запросами. И поскольку на западе проблем с кодировками обычно меньше, чем у нас кириллицей, особо никто не заморачивался.
 

Фанат

oncle terrible
Команда форума
в копирайтах там русские фамилии =)
но вообще да, что криейт табле она не меняет при перекодировке - я не задумывался.
 

vovanium

Новичок
в копирайтах там русские фамилии
Да его какой-то киевлянин написал Игорь Романенко, правда думаю что он им уже давно не занимается, так что наверное версию для 4.1 уже без наших программеров обновляли.
 

Gas

может по одной?
vovanium
"не совсем равнозначно" - разумеется не совсем, хотя врят-ли весомый процент разработок используют новые опции:
- ROW_FORMAT [=] {REDUNDANT|COMPACT} (только-только патч появился)
- KEY_BLOCK_SIZE (5.1 ещё не продакшн)
- CONNECTION (federated tables - сомневаюсь что многие пользуют это)

Но в целом да, "в рот мне ноги" помнить все эти мелочи и надеяться что ничего не потеряется после compatible :)
 

Mols

Новичок
По идее можно так.
1. mysqldump -uuser -ppasword --no-data dbname
2. mysqldump -uuser -ppasword --no-create-info dbname

Залить в том же порядке. Но перед этим спокойно, хоть в блокноте, хоть в vim в общем кто во что горазд поправить результат первого дампа.
ИМХО если есть доступ к шелу - это лучше всего. Если нет... ну тогда надо уже что-то типа дампера юзать.
 

Navarro

Новичок
В 5 дейсвительно в mysqldump есть опция переноса в другую кодировку. В 4 этой опции нет.
 
Сверху