adeep 212 Опубліковано: 2011-12-06 15:45:45 Share Опубліковано: 2011-12-06 15:45:45 скачивай в latin1 Ссылка на сообщение Поделиться на других сайтах
NiTr0 584 Опубліковано: 2011-12-06 16:28:51 Share Опубліковано: 2011-12-06 16:28:51 у меня база сейчас в кодировке utf8 а таблицы в latin1_swedish_ci .... . теперь надо данные таблиц перекодировать в utf8 Дык charset/collation надо было менять не только для базы, но и для всех полей. Т.е. - sed'ом сменить latin1_swedish_ci на utf8_general_ci, далее - latin1 на utf8, далее - заливать дамп. Надеюсь, экспериментируете хоть не на живом биллинге, а на тестовом? Ссылка на сообщение Поделиться на других сайтах
kvirtu 315 Опубліковано: 2011-12-06 16:30:56 Автор Share Опубліковано: 2011-12-06 16:30:56 скачивай в latin1 вроде разобрался), скачивать надо именно в latin1 т.к. данные в таблицах хранятся в latin1, вычитал в инете: Распространенная ошибка в таких случаях - когда в --default-character-set указывают фактическую кодировку данных, в данном случае - utf8. В дампе будет мусор. Указывать надо ту, которая установлена в таблицах. В результате MySQL не будет пытаться данные перекодировать, и отдаст их в том виде как они есть. потом дамп скачал на комп, открыл в Notepad++, крякозабры, выбрал кодировку windows-1251 - данные отображаются нормально Далее в нотепаде выбираю "преобразовать в utf-8", сохраняю и заливаю дамп на сервак. Зиливаю дамп в другую (тестовую) базу с кодировкой таблиц и базы в utf8. Захожу в phpmyadmin - вижу данные пользователей нормально. Завтра уже попробую поменять на рабочую базу, отпишусь. Ссылка на сообщение Поделиться на других сайтах
kvirtu 315 Опубліковано: 2011-12-06 16:32:05 Автор Share Опубліковано: 2011-12-06 16:32:05 у меня база сейчас в кодировке utf8 а таблицы в latin1_swedish_ci .... . теперь надо данные таблиц перекодировать в utf8 Дык charset/collation надо было менять не только для базы, но и для всех полей. Т.е. - sed'ом сменить latin1_swedish_ci на utf8_general_ci, далее - latin1 на utf8, далее - заливать дамп. Надеюсь, экспериментируете хоть не на живом биллинге, а на тестовом? на живом ..., но перед тем как что то делать всегда делал резервный бекап, а юзверы ничего не почувствовали ... Ссылка на сообщение Поделиться на других сайтах
BUM 240 Опубліковано: 2011-12-06 17:17:42 Share Опубліковано: 2011-12-06 17:17:42 Попробуй дамп сделать с ключем --skip-set-charset и залить его в базу Ссылка на сообщение Поделиться на других сайтах
NiTr0 584 Опубліковано: 2011-12-06 18:01:38 Share Опубліковано: 2011-12-06 18:01:38 скачивать надо именно в latin1 Ну да. О чем я и писал. Далее в нотепаде выбираю "преобразовать в utf-8", сохраняю и заливаю дамп на сервак. Можно просто при заливке указать, в какой кодировке поступают входные данные (set names в дампе, или если нет - default-character-set мускулу). Хотя если хочется через анус - ваше право И уверен, работать не будет т.к. notepad++ радостно сконвертил блобы, в которых хранятся пароли. Как и iconv. на живом ..., но перед тем как что то делать всегда делал резервный бекап, а юзверы ничего не почувствовали ... Мсье извращенец Поднять биллинг (голый веб, без радиуса/крона/прочего хлама) на тестовом стенде - 5 минут дела... Ссылка на сообщение Поделиться на других сайтах
kvirtu 315 Опубліковано: 2011-12-06 20:43:17 Автор Share Опубліковано: 2011-12-06 20:43:17 И уверен, работать не будет т.к. notepad++ радостно сконвертил блобы, в которых хранятся пароли. Как и iconv.- и какое решение ? Ссылка на сообщение Поделиться на других сайтах
jack 25 Опубліковано: 2011-12-07 00:50:00 Share Опубліковано: 2011-12-07 00:50:00 (відредаговано) пока способ на проверке Відредаговано 2011-12-07 01:33:30 jack Ссылка на сообщение Поделиться на других сайтах
muff 115 Опубліковано: 2011-12-07 00:55:05 Share Опубліковано: 2011-12-07 00:55:05 У кого будут встречаться грабли с кодировкой, советую попробовать Sypex Dumper - не раз выручал. Ссылка на сообщение Поделиться на других сайтах
mr.Scamp 41 Опубліковано: 2011-12-07 07:01:44 Share Опубліковано: 2011-12-07 07:01:44 А что мешает и дальше держать базу в cp1251? $conf{dbcharset}='cp1251'; Ссылка на сообщение Поделиться на других сайтах
kvirtu 315 Опубліковано: 2011-12-07 09:31:19 Автор Share Опубліковано: 2011-12-07 09:31:19 скачивать надо именно в latin1 Ну да. О чем я и писал. Далее в нотепаде выбираю "преобразовать в utf-8", сохраняю и заливаю дамп на сервак. Можно просто при заливке указать, в какой кодировке поступают входные данные (set names в дампе, или если нет - default-character-set мускулу). Хотя если хочется через анус - ваше право И уверен, работать не будет т.к. notepad++ радостно сконвертил блобы, в которых хранятся пароли. Как и iconv. на живом ..., но перед тем как что то делать всегда делал резервный бекап, а юзверы ничего не почувствовали ... Мсье извращенец Поднять биллинг (голый веб, без радиуса/крона/прочего хлама) на тестовом стенде - 5 минут дела... метод не прокатил .... пароли сносятся .... вижу только одно конвертировать отдельно нужные таблицы или залить отдельно таблицу с паролями с дампа ?? Ссылка на сообщение Поделиться на других сайтах
Elisium 10 Опубліковано: 2011-12-07 13:01:02 Share Опубліковано: 2011-12-07 13:01:02 Ну вот и возвращаемся к первой страничке, а именно к варианту - скрипты )) Как вариант (ИМХО): 1. Слить базу в оригинальном варианте (где данные в СР1251), конвертнуть базу в УТФ8, залить в ПУСТУЮ базу УТФ8. Настроить биллинг на работу с УТФ8 кодировкой. Проверить, ПРАВИЛЬНО ли видно в нем данные. 2. Хз, в каком формате хранятся пароли в Абиллсе. В Нодени это AES_ENCRYPT тип text. Делать SELECT скриптом (перловымипт) паролиид юзеров со старой базы, UPDATE в новую базу без изменений. Повторить пункт 2 для всех таких полей. Ведь кроме паролей юзеров в базе могут еще и какие-нить картинки лежать )), пароли в админку, мало ли чего еще. Както так... Ссылка на сообщение Поделиться на других сайтах
kvirtu 315 Опубліковано: 2011-12-07 13:01:15 Автор Share Опубліковано: 2011-12-07 13:01:15 С помощью такого скрипта, почти удалось: #!/bin/sh mysqldump --hex-blob --skip-set-charset base | sed -e 's/latin1/utf8/g' | sed -e 's/cp1251/utf8/g' | iconv -f cp1251 -t utf-8 > utf_base.sql Но почему-то не хочет это: iconv -f cp1251 -t utf-8 iconv -f lain1 -t utf-8 - так конвертируется Ссылка на сообщение Поделиться на других сайтах
NiTr0 584 Опубліковано: 2011-12-07 13:17:36 Share Опубліковано: 2011-12-07 13:17:36 Дык залить внаглую дамп, указав кодировку cp1251 возможно где-то левый символ вылез, и на нем iconv обламывается. Ссылка на сообщение Поделиться на других сайтах
kvirtu 315 Опубліковано: 2011-12-07 13:33:36 Автор Share Опубліковано: 2011-12-07 13:33:36 Ух, победил таким скриптиком: #!/bin/sh mysqldump --hex-blob --skip-set-charset --default-character-set=latin1 -u root -p base | sed -e 's/latin1/utf8/g' | sed -e 's/cp1251/utf8/g' | iconv -f cp1251 -t utf-8 > newbase.sql как я понял, ключевое здесь: --hex-blob ВСЕМ спасибо ! Ссылка на сообщение Поделиться на других сайтах
Elisium 10 Опубліковано: 2011-12-07 19:58:47 Share Опубліковано: 2011-12-07 19:58:47 Ух, победил таким скриптиком: #!/bin/sh mysqldump --hex-blob --skip-set-charset --default-character-set=latin1 -u root -p ???? | sed -e 's/latin1/utf8/g' | sed -e 's/cp1251/utf8/g' | iconv -f cp1251 -t utf-8 > newbase.sql как я понял, ключевое здесь: --hex-blob ВСЕМ спасибо ! Че, и впрямь такой пароль на базу стоит ? )))) На радостях стереть забыл ? ) Ссылка на сообщение Поделиться на других сайтах
_seth_ 2 Опубліковано: 2013-12-18 10:19:50 Share Опубліковано: 2013-12-18 10:19:50 Ух, победил таким скриптиком: #!/bin/sh mysqldump --hex-blob --skip-set-charset --default-character-set=latin1 -u root -p base | sed -e 's/latin1/utf8/g' | sed -e 's/cp1251/utf8/g' | iconv -f cp1251 -t utf-8 > newbase.sql как я понял, ключевое здесь: --hex-blob ВСЕМ спасибо ! Я уже неделю бьюсь над такой же проблемой. Есть билинг на старом серваке база в latin1: mysql> show variables like 'collation%'; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | latin1_swedish_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | +----------------------+-------------------+ mysql> show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) Снимаю дамп: mysqldump --hex-blob --skip-set-charset --default-character-set=latin1 -u root -p abills > abills.sql смотрю дамп - с кирилицей все в порядке. Делаю: #sed -e 's/latin1/utf8/g' -i abills.sql # sed -e 's/cp1251/utf8/g' -i abills.sql # sed -e 's/ENGINE=MyISAM/ENGINE=InnoDB/g' -i abills.sql #iconv -c -f cp1251 -t utf-8 abills.sql > abills.utf8.sql или же #iconv -f latin1 -t utf-8 abills.sql > abills.utf8.sql смотрю дамп - кирилица не читаема в обоих случаях. Я уже просто не знаю что можно попробовать. Куда смотреть? Что делать? Ссылка на сообщение Поделиться на других сайтах
muff 115 Опубліковано: 2013-12-18 10:40:21 Share Опубліковано: 2013-12-18 10:40:21 Попробуйте такой инструмент, как Sypex Dumper Когда-то писал статью по работе с Sypex Dumper Lite 1.0.8. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2013-12-18 11:49:18 Share Опубліковано: 2013-12-18 11:49:18 Боже, Dumper... Lite... Если с кирилицей все в порядке - так может оно там и было в utf8? Зачем его iconv'ом конвертить? Ссылка на сообщение Поделиться на других сайтах
foreverok 95 Опубліковано: 2013-12-18 13:24:42 Share Опубліковано: 2013-12-18 13:24:42 Ух, победил таким скриптиком: #!/bin/sh mysqldump --hex-blob --skip-set-charset --default-character-set=latin1 -u root -p base | sed -e 's/latin1/utf8/g' | sed -e 's/cp1251/utf8/g' | iconv -f cp1251 -t utf-8 > newbase.sql как я понял, ключевое здесь: --hex-blob ВСЕМ спасибо ! Я уже неделю бьюсь над такой же проблемой. Есть билинг на старом серваке база в latin1: mysql> show variables like 'collation%'; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | latin1_swedish_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | +----------------------+-------------------+ mysql> show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) Снимаю дамп: mysqldump --hex-blob --skip-set-charset --default-character-set=latin1 -u root -p abills > abills.sql смотрю дамп - с кирилицей все в порядке. Делаю: #sed -e 's/latin1/utf8/g' -i abills.sql # sed -e 's/cp1251/utf8/g' -i abills.sql # sed -e 's/ENGINE=MyISAM/ENGINE=InnoDB/g' -i abills.sql #iconv -c -f cp1251 -t utf-8 abills.sql > abills.utf8.sql или же #iconv -f latin1 -t utf-8 abills.sql > abills.utf8.sql смотрю дамп - кирилица не читаема в обоих случаях. Я уже просто не знаю что можно попробовать. Куда смотреть? Что делать? Выкиньте команды с iconv и все получится. Ссылка на сообщение Поделиться на других сайтах
_seth_ 2 Опубліковано: 2013-12-18 13:43:43 Share Опубліковано: 2013-12-18 13:43:43 Боже, Dumper... Lite... Если с кирилицей все в порядке - так может оно там и было в utf8? Зачем его iconv'ом конвертить? Выкиньте команды с iconv и все получится. Это просто ЖЕСТЬ, все так и есть. madf, foreverok, спасибо вам огромное. Ссылка на сообщение Поделиться на других сайтах
~AsmodeuS~ 34 Опубліковано: 2013-12-18 15:04:53 Share Опубліковано: 2013-12-18 15:04:53 Наверное жесть в том что прошло 2 года никто ничего так и не написал выкладываю утилиту из коммерческого набора для ABillS http://abills.net.ua/forum/viewtopic.php?f=1&t=5795&p=29303#p29303 Ссылка на сообщение Поделиться на других сайтах
kvirtu 315 Опубліковано: 2013-12-18 15:46:47 Автор Share Опубліковано: 2013-12-18 15:46:47 (відредаговано) Наверное жесть в том что прошло 2 года никто ничего так и не написал выкладываю утилиту из коммерческого набора для ABillS http://abills.net.ua/forum/viewtopic.php?f=1&t=5795&p=29303#p29303 Добренький стал, однако .... Відредаговано 2013-12-18 15:46:54 kvirtu Ссылка на сообщение Поделиться на других сайтах
~AsmodeuS~ 34 Опубліковано: 2013-12-18 15:53:39 Share Опубліковано: 2013-12-18 15:53:39 новогодние подарки ) Ссылка на сообщение Поделиться на других сайтах
kvirtu 315 Опубліковано: 2013-12-18 16:45:06 Автор Share Опубліковано: 2013-12-18 16:45:06 новогодние подарки ) может и мне что-то подарите ? Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас