SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 13.09.2011 13:52:04

_Сергей
Завсегдатай
Зарегистрирован: 26.11.2008
Сообщений: 36

Помогите перенести данные из одной базы в другу с разынми кодировками.

Здравствуйте.

Больше нет сил. Уже перепробовал все что знал и что нашел в интернете. Суть проблемы в том что есть сервер. На нем 2 базы.Старая и новая куда надо перенести некоторые таблицы.
в my.cnf есть вот такая строка init-connect="SET NAMES koi8r"
show variables показывает

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/local/share/mysql/charsets/                                                                                       |
| collation_connection                              | latin1_swedish_ci                                                                                                      |
| collation_database                                | latin1_swedish_ci                                                                                                      |
| collation_server                                  | latin1_swedish_ci

Старая базы создана как koi8r это видно по show create database, нужная таблица так же создана в кодировке koi8r это видно по show create table system_user;

Новая база и таблицы все utf8.
никакие ключи в mysqldump типа --default-character-set=koi8r --no-set-names --skip-add-drop-table --skip-set-charset не помогают.

Пробовал подключиться через navicat. Так вот что бы можно было видеть кирилицу, при подключении указать кодировку cp1251 во вкладке Advance, пункт Encoding. Потом зайти в конструктор запросов выполнить set name koi8r select * from system_user; и только тогда видна кирилица.

Спасите. sad

Неактивен

 

#2 13.09.2011 14:23:51

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Помогите перенести данные из одной базы в другу с разынми кодировками.

http://sqlinfo.ru/articles/info/5.html — статью читали?

Навикат не показатель, init-connect надо оторвать, чтобы не портил жизнь.
После этого определите в обычной консоли кодировку символов. Ну и
сконвертируйте. Скорее всего, читаемый дамп снимется с помощью
mysqldump --default-character-set=koi8r. После этого его нужно подправить
и восстановить в другую базу.

Неактивен

 

#3 13.09.2011 15:54:41

_Сергей
Завсегдатай
Зарегистрирован: 26.11.2008
Сообщений: 36

Re: Помогите перенести данные из одной базы в другу с разынми кодировками.

Без init-connect не работает старая база - кракозяблы. А она должна работать параллельно со старой, только в режиме чтения.

Неактивен

 

#4 13.09.2011 16:00:13

_Сергей
Завсегдатай
Зарегистрирован: 26.11.2008
Сообщений: 36

Re: Помогите перенести данные из одной базы в другу с разынми кодировками.

только что попробовал убрать init-connect и сделать mysqldump --default-character-set=koi8r
не помогло, хотя кракозяблы изменились. но все же это остались кракозяблы.

Неактивен

 

#5 13.09.2011 16:48:52

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Помогите перенести данные из одной базы в другу с разынми кодировками.

Ну хоть не знаки вопроса. Теперь преобразуйте файл в формат с известной
кодировкой. Можете воспользоваться декодером Лебедева, например (кусочек
текста запостить и посмотреть, что получится).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson