SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 13.10.2009 20:53:43

nightssss
Участник
Зарегистрирован: 13.10.2009
Сообщений: 14

Импорт дампа таблицы Mysql со сжатыми столбцами

Вот какая проблема возникла, может кто знает как решить, потому у меня кончились идеи как это сделать.

Исходные данные:
На первом хосте
Версия MySQL-клиента: 5.0.67

на втором хосте:
Версия MySQL-клиента: 5.0.51a

Есть также таблица, где некоторые из столбцов сжаты функцией Mysql COMPRESS()

Нужно перенести базу с одного хоста на другой, чтобы unCOMPRESS() этих сжатых столбцов корректно работал на втором хосте.

Я сделал импорт и вроде всё было ОК, сравнивал данные, которые вставились, они идентичны, но на втором хосте функция unCOMPRESS() выдаёт NULL, то есть не может расшифровать данные.

Также известно что если вставить какую-нибудь запись и сжать, то MySQL на втором хосте потом нормально распаковывает, то есть COMPRESS работает корректно.

Я проводил такой эксперимент:
Сжимал одинаковую строку на обоих хостах и смотрел результат. Он был идентичен.

Вот вопрос: в чём может быть проблема? почему при импорте не работает верно UnCOMPRESS.

Неактивен

 

#2 13.10.2009 21:34:20

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

Re: Импорт дампа таблицы Mysql со сжатыми столбцами

А как Вы переносите базу? У Вас точно нет проблем с кодировками? Просто NULL
выдается тогда, когда у Вас битая строка. Что есть обычно результат неправильной
перекодировки.

Неактивен

 

#3 13.10.2009 22:34:13

nightssss
Участник
Зарегистрирован: 13.10.2009
Сообщений: 14

Re: Импорт дампа таблицы Mysql со сжатыми столбцами

хм... действительно
попробовал сжать 2 строки на первом сервере: одна была 'asdf', вторая 'фыва'. Потом экспортировал и импортировал на второй сервер. 'asdf' расшифровалась а 'фыва' - нет sad

Импорт делал так:
mysql -uюзер -pпароль имя_базы < имя_базы.sql

также пробовал:
mysql -uюзер -pпароль имя_базы --default-character-set=utf8 < имя_базы.sql
mysql -uюзер -pпароль имя_базы --default-character-set=cp1251 < имя_базы.sql

Отредактированно nightssss (13.10.2009 22:34:45)

Неактивен

 

#4 14.10.2009 00:04:18

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

Re: Импорт дампа таблицы Mysql со сжатыми столбцами

А экспорт? Какой тип данных у колонки сжатой? Скорее всего, портится
всё уже на уровне экспорта в файлик. Самое правильное тут, наверное,
преобразовать колонки к соответствующим безкодировочным аналогам
(varchar → varbinary, text → blob, ...), экспортировать и импортировать уже
без каких-либо помех со стороны преобразования кодировок. Хотя, конечно,
разобраться в кодировках — тоже очень правильное и нужное умение smile

Неактивен

 

#5 14.10.2009 16:36:33

nightssss
Участник
Зарегистрирован: 13.10.2009
Сообщений: 14

Re: Импорт дампа таблицы Mysql со сжатыми столбцами

С кодировками не смог разобраться как ни пробовал, если бы данные были не сжаты я бы разобрался, а так, немного проблемно.
Изменял системные переменные которые связаны с кодировками (SHOW VARIABLES LIKE 'char%'), делал их одинаковыми на обоих серверах - не помогало. Да и даже при экспорте на первом сервере и импорте там же на первом сервере тоже проблемы при UnCOMPRESS возникали.
После преобразования в BLOB и использования шестнадцатеричного отображения для blob полей при экспорте проблема вроде решилась, спасибо за совет.

Отредактированно nightssss (14.10.2009 16:38:45)

Неактивен

 

Board footer

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