Пропустить

Решение проблемы бекапа базы с нормальной кодировкой

Вопросы без привязки к версии. Установлена авточистка (2 года).
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение Andrewsha » 21.12.2009 19:08

У меня база 200Мб

общался с поддержкой. теперь я в замешательстве:

[16:35:55 21 Dec 2009]
Здравствуйте!
выполнение команды:
>mysqldump --default-character-set=utf8
упорно создает дамп в кодировке cp1251
можно ли что-то исправить?

[16:36:17 21 Dec 2009] Никита Менькович
Значит у Вас данные находятся в нём в этой кодировке

[16:38:06 21 Dec 2009]
у меня база и все таблицы в utf8

[16:41:33 21 Dec 2009]
а корне у меня сейчас лежит dump.sql - это дамп одной таблицы

[16:41:51 21 Dec 2009]
можете убедиться, что он получается cp1251

[16:50:25 21 Dec 2009] Никита Менькович
Данные в БД хранятся в cp1251

[16:51:09 21 Dec 2009] Никита Менькович
http://clubfonar.ru/test.php кодировка - cp1251

[16:52:14 21 Dec 2009]
так у таблиц utf8_bin

[16:52:50 21 Dec 2009] Никита Менькович
А данные хранятся в cp1251

[16:53:13 21 Dec 2009] Никита Менькович
То что сравнение выставлено utf8_bin не гарантирует, что данные туда будут именно utf8 попадать


Прошу подсказать возможно ли такое? Что сравнение utf8_bin, а данные cp1251 и как теперь исправлять и нужно ли?

Я помню, когда с хостинга Джино переезжал на hostgator было все нормально, а когда потом переезжал на spaceweb.ru то при поднятии базы шла какая-то ругань, сейчас понимаю, что возможно, что-то с кодировкой было.

Andrewsha
phpBB 1.4.2
 
Сообщения: 53
Зарегистрирован: 14.06.2009 2:41
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение Rayden » 21.12.2009 19:09

rxu
Понимаешь, тут двоякий ответ.
Например EditPlus вполне резво с дампами в 600Мб работает.
А вот у СпейсВеба mysqldump вываливается по таймауту при попытке сделать дамп даже в 400Мб.
Так что... :lol:

Добавлено спустя 11 минут 8 секунд:
Andrewsha писал(а):Прошу подсказать возможно ли такое? Что сравнение utf8_bin, а данные cp1251

Такое невозможно. Будет ошибка о неправильном сравнении, что-то типа Illegal mix of collations или Unknown collation
Вообще ты не бойся, а честно напиши - "Уважаемый СпейсВеб, прошу передать мое письмо более компетентному специалисту, чем Никита Менькович, который путает сравнение и кодировку". И отправь письмо на manager@sweb.ru, а не на саппорт.
phpBB2 FAQ
phpBB3 FAQ
Аватара пользователя
Rayden
Former team member
 
Сообщения: 3795
Зарегистрирован: 27.06.2005 1:07
Благодарил (а): 0 раз.
Поблагодарили: 29 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение nissin » 21.12.2009 19:38

Andrewsha
Это практически непобедимо, у них mysql так настроен, что mysqldump всегда выдаёт данные в кодировке cp1251.
Я решал вопрос правками в mysqldump (добавлением дополнительного запроса 'SET NAMES utf8'), и компилированием его для себя.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение Andrewsha » 21.12.2009 20:54

nissin писал(а):Я решал вопрос правками в mysqldump (добавлением дополнительного запроса 'SET NAMES utf8'), и компилированием его для себя.

так ведь утилита то запускается не у меня на машине, а на хостинге, кто ж туда позволит свой mysqldump.exe закачать?

Rayden писал(а):Вообще ты не бойся, а честно напиши

Оки, попробую продолжить решение вопроса. Хотя насколько понял, уже многие на эти грабли наступали.

Andrewsha
phpBB 1.4.2
 
Сообщения: 53
Зарегистрирован: 14.06.2009 2:41
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение nissin » 22.12.2009 0:09

Если есть доступ к shell, можно запустить практически что угодно :)
Я компилировал свой mysqldump прямо на хостинге sweb(gentoo) и masterhost(freebsd).

Но вообще нужно требовать от хостера делать возможность получения дампа в кодировке utf8.
А как они будут решать, править настройки mysql или патчить mysqldump это уже их проблемы.

Использование дампа в кодировке cp1251 чревато проблемами с username_clean, и утерей символов других языков, которые не входят в cp1251.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение Andrewsha » 22.12.2009 17:15

Поручик писал(а):Делай дамп с помощью Sypex Dumper и не парься

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

В конечном итоге сделал дамп без сжатия, скачал его. Поднялся он с парой замечаний. но вроде пока все ОК. Замечания не анализировал, т.к. дамп мне нужен был для локальной базы. Жаль, что с архивом не работает нормально.
Использовал полную версию, не лайт. Может зря?

Andrewsha
phpBB 1.4.2
 
Сообщения: 53
Зарегистрирован: 14.06.2009 2:41
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение Andrewsha » 22.12.2009 23:59

Продолжил общение с поддержкой.
Привожу ответ. Хочется услышать мнение опытных товарищей.

Диалог:
> >mysqldump --default-character-set=utf8
>
> упорно создает дамп в кодировке cp1251
>
> можно ли что-то исправить?

Данный ключ не меняет при экспорте кодировку дампа базы.
Как вариант решения проблемы, можете получившийся дамп сконвертировать в
нужной Вам кодировке, например так:
iconv -c -f cp1251 -t utf8 dump.sql > dump_utf8.sql


Как я понимаю предложен некий "обходной" путь, который по сути обсуждался нами ранее. Могут быть некие "побочные" эффекты.

Andrewsha
phpBB 1.4.2
 
Сообщения: 53
Зарегистрирован: 14.06.2009 2:41
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение nissin » 23.12.2009 0:18

Я писал уже ранее, теряется username_clean (юзеры с русскими никами не смогут войти) и посты написанные на языках отличных от русского и английского (например японская поэзия :)).
Уже проходили.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение rxu » 23.12.2009 8:00

Вызывает уважение позиция хостера, который с маниакальным упорством цепляется за кодировку cp1251, и никак не желает идти навстречу потребностям клиента.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение nissin » 23.12.2009 9:25

Да он не цепляется, он просто не знает как сделать по другому кодировку cp1251 вместо latin1 по умолчанию в mysql :)
Все под копирку русифицируют MySQL примерно таким образом:
init-connect = "set names cp1251"
skip-character-set-client-handshake

Но с mysqldump этот номер не прокатывает.
Нужно примерно так:
[client]
# Для местного клиента
default-character-set=cp1251
....

[mysqld]
# Для всего сервера
default-character-set=cp1251
....

Либо:
shell> mysqld --character-set-server=cp1251

Ещё можно при конфигурировании задать кодировку по умолчанию:
shell> ./configure --with-charset=cp1251

Источник
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение armid » 20.08.2010 22:22

Ребята только осваиваюсь с форумом. Установил себе phpbb3. С кодировкой проблем нет. Но, если зайти в phpmyadmin в базу форума то во всех таблицах сравнение стоит utf8_bin хотя насколько я знаю универсальной считается utf8_general_ci Или у меня все правильно? Если нет, то можно ли ее поменять?

armid
phpBB 1.4.4
 
Сообщения: 97
Зарегистрирован: 20.08.2010 19:18
Благодарил (а): 18 раз.
Поблагодарили: 1 раз.

Re: Решение проблемы бекапа базы с нормальной кодировкой

Сообщение Kostelano » 20.08.2010 22:24

armid
Все нормально, нет поводов для тревоги.
За это сообщение автора Kostelano поблагодарил:
armid (20.08.2010 23:29)
Аватара пользователя
Kostelano
phpBB 1.4.4
 
Сообщения: 76
Зарегистрирован: 23.02.2010 1:59
Откуда: Днепропетровск
Благодарил (а): 10 раз.
Поблагодарили: 13 раз.

Пред.

Вернуться в phpBB-пространство

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Изображение