Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Кодировка
 
Ситуация следующая. Меня попросили  восстановить сайт, который поломал (по словам заказчика), сам создатель. Толи у них отношения испортились, то ли … не суть. Они перевели сайт на другой хостинг, где там я его и поправил! Но вот беда, не могу дамп базы сделать. Дамп делается через phpMyAdmin и выдаёт следующую абру кадабру:

-- phpMyAdmin SQL Dump
-- version 2.6.4-pl3
-- http://www.phpmyadmin.net
--
-- Хост: localhost:3306
-- Время создания: Дек 19 2006 г., 17:28
-- Версия сервера: 4.1.10
-- Версия PHP: 5.0.5
--
-- БД: `hostname`


--
-- Структура таблицы `FileType`
--

CREATE TABLE `FileType` (
 `ID` int(11) NOT NULL auto_increment,
 `Name` varchar(255) NOT NULL default '',
 `Types` text NOT NULL,
 `Image` varchar(255) NOT NULL default '',
 UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1  AUTO_INCREMENT=6 ;

--
-- Дамп данных таблицы `FileType`
--

INSERT INTO `FileType` VALUES (1, 'Ecia?a?aiea', 'jpg;jpeg;gif;png', '');
INSERT INTO `FileType` VALUES (2, 'Aieoiaio Word', 'doc;rtf', '/_i_files/2/ift_word.gif');
INSERT INTO `FileType` VALUES (3, 'A?oea', 'zip;rar;arj;tar;gzip', '/_i_files/3/ift_archive.gif');

На вопрос хостеры не смогли ответить, поэтому прошу Вашей помощи!
 
Возможно, была изначально криво поставлена работа с базой.

Кодировка таблиц - latin1, а данные туда заносились в другой кодировке.
Соотвественно и дамп получается корявый.

Можно попробовать mysqldump'ом вручную создать дамп, поигрывая параметром  --default-character-set

например:

mysqldump -uxxxx -pyyy --default-character-set=cp1251 yourdb > dump1.sql
mysqldump -uxxxx -pyyy --default-character-set=koi8r yourdb > dump2.sql

И уже далее пытаться прочесть полученный файл в соответсвующей кодировке.

Если всё получится, то у Вас на руках будет читабельный дамп в подобранной кодировке.
Этот  дамп перед загрузкой новый хостинг желательно будет чуть изменить (те строки, которые касаются описания таблиц)

ENGINE=MyISAM DEFAULT CHARSET=latin1....

здесь latin1 нужно заменить найденной кодировкой.

+ Не мешало бы проверить (и при необходимости скорректировать) кодировку работы Ваших скриптов с MySQL базой. (например, если для работы с пользователями Вы в скоих документах используете KOI8-R, то и в описаниях таблиц следует использовать KOI8-R, + ОБЯЗАТЕЛЬНО после соединения  с базой из скрипта исполнять SQL запрос типа "SET NAMES koi8r"). (естественно koi8r- это просто для примера).

Удачи.
 
ClosedGL спасибо за то, что отозвался.
Цитата
ClosedGL пишет:
Возможно, была изначально криво поставлена работа с базой.
Это точно!
Цитата
ClosedGL пишет:
Можно попробовать mysqldump'ом вручную создать дамп, поигрывая параметром --default-character-set
К сожалению не имею такой возможности. По SSH вхожу, но сразу вылетаю. Делается всё через Plesk, и phpmyadmin.
Отошлю твои слова на форум хостинга! Посмотрим что скажут...
Страницы: 1
Читают тему