alekciy
Новичок
Восстановление базу из дампе через mysql утилиту
ОС: Fedora Core (ядро 2.6.18)
MySQL: 5.0.45
Утилита mysql: Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i386)
Описание:
Есть база данных (my_db) с таблицами MyISAM в кодировке windows-1251. Создается её дамп командой:
Дамп получается большой, более 60МБ поэтому я его делают именно так, а не через PHPMyAdmin (тем более в свете того, что это все на мастерхосте, кто юзал там pma думаю меня поймут
). Полученный дамп выходит корректным, что видно, если его просто просмотреть через браузер просто как текст. При кодировке браузера windows-1251 все киррилические символы видно нормально, ни каких кракозябров.
В общем дамп создан и он корректный. В самом дампе charset=cp1251 при создании таблиц явно заданы.
Далее пытаюсь его развернуть на другом хосте. На нем имеем:
Т.е. как я понимаю при соединении утилиты mysql с сервером кодировка соединения равна 1251. Разворачиваю:
Проблема
После восстановление из дампа в базе все кириллические символы выводяться знаками вопроса.
Вопрос
Можно ли утилитой mysql корректно восстановить cp1251 дамп? Может есть возможность получить доступ к базе через mysql, задать все нужные кодировки, а потом дать команду на вставку данных из дампа, но как?
P.S. Понятное дело, что один из методов решения, особо учитывая, что имеет рут доступ, это выставление максимально возможных настроек которые позволили бы залить файл большего объема. Собственно это и было сделано через сжатие дампа и заливку его через pma. И в базе получаем корректные кириллические символы, что еще раз подтверждать правильность создание самого дампа. Но такая возможность предоставляется не всегда и хочется найти вариант с mysql утилем.
ОС: Fedora Core (ядро 2.6.18)
MySQL: 5.0.45
Утилита mysql: Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i386)
Описание:
Есть база данных (my_db) с таблицами MyISAM в кодировке windows-1251. Создается её дамп командой:
Код:
mysqldump -u ******* -p******** --default-character-set=cp1251 my_db > my_db.sql

В общем дамп создан и он корректный. В самом дампе charset=cp1251 при создании таблиц явно заданы.
Далее пытаюсь его развернуть на другом хосте. На нем имеем:
Код:
mysql> SHOW VARIABLEs LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | cp1251 |
| character_set_connection | cp1251 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | cp1251 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
Код:
[root@v6558 ~]# mysql -u ****** -p******* my_db < my_db.sql
После восстановление из дампа в базе все кириллические символы выводяться знаками вопроса.
Вопрос
Можно ли утилитой mysql корректно восстановить cp1251 дамп? Может есть возможность получить доступ к базе через mysql, задать все нужные кодировки, а потом дать команду на вставку данных из дампа, но как?
P.S. Понятное дело, что один из методов решения, особо учитывая, что имеет рут доступ, это выставление максимально возможных настроек которые позволили бы залить файл большего объема. Собственно это и было сделано через сжатие дампа и заливку его через pma. И в базе получаем корректные кириллические символы, что еще раз подтверждать правильность создание самого дампа. Но такая возможность предоставляется не всегда и хочется найти вариант с mysql утилем.