cp1251->utf8

ну щас.
как раз замена кодировки ДАМПА там есть. default-charset.
ты можешь получить базу в любой желаемой кодировке. что и требовалось доказать.
 
ДАМПА там есть. default-charset
Ты не совсем понял задачу, при этом не меняются кодировки в CREATE TABLE, кодировку самого дампа оно меняет, но при восстановлении у таблиц будет та же кодировка, т.е. указав default-charset utf-8 и сделав дамп таблиц cp1251, а потом востановив обратно получится всё та же cp1251, чтобы получить utf-8, нужно либо вручную исправить кодировки в CREATE TABLE, либо использовать дампер :)
default-charset это просто вызов SET_NAMES.
 
vovanium
в большинстве ситуаций поможет это исправит --compatible="mysql40"
 
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-запросами. И поскольку на западе проблем с кодировками обычно меньше, чем у нас кириллицей, особо никто не заморачивался.
 
в копирайтах там русские фамилии =)
но вообще да, что криейт табле она не меняет при перекодировке - я не задумывался.
 
в копирайтах там русские фамилии
Да его какой-то киевлянин написал Игорь Романенко, правда думаю что он им уже давно не занимается, так что наверное версию для 4.1 уже без наших программеров обновляли.
 
vovanium
"не совсем равнозначно" - разумеется не совсем, хотя врят-ли весомый процент разработок используют новые опции:
- ROW_FORMAT [=] {REDUNDANT|COMPACT} (только-только патч появился)
- KEY_BLOCK_SIZE (5.1 ещё не продакшн)
- CONNECTION (federated tables - сомневаюсь что многие пользуют это)

Но в целом да, "в рот мне ноги" помнить все эти мелочи и надеяться что ничего не потеряется после compatible :)
 
По идее можно так.
1. mysqldump -uuser -ppasword --no-data dbname
2. mysqldump -uuser -ppasword --no-create-info dbname

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