Реклама на ПКФоруме тел.: +7 987 751-1-777 (МТС)

Автор Тема: Кодировки MySQL. Сос!  (Прочитано 759 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ExGoth

  • Молодой камчадал
  • ***
  • Сообщений: 647
  • Карма: +113/-4
  • Пол: Мужской
    • Награды
Кодировки MySQL. Сос!
« : 12:16, 10 Июнь, 2014 »
Камрады, сложилась ситуация, в которой я уже голову сломал.
Есть сайт на стороннем хостинге, у хостера есть phpMyAdmin.
Есть скрипт, который выгружает данные из 1С и скрипт-дампер на сайте, который заливает выгрузку на сайт.
В майадмин везде кодировки выставлены 1251.
Дамп, выгружаемый из 1С затрагивает только таблицы виртумарта, установленного на сайте.
Если дамп заливать через майадмин, принудительно выставив ему кодировку 1251 - все ок.
Если дамп заливать через дампер - кодировка разделов и товаров в виртумарте сбивается.
Не могу понять где собака порылась. Дампер вроде бы просто болванчик, который не выставляет свою кодировку, т.е. кодировка определяется сервером, на котором крутится база. На старом хостинге все работало на ура, т.е. самому дамперу и не нужно было выставлять кодировку данным. Но настройки mysql там посмотреть возможности уже нет.
Кто в теме - куда копать?


Оффлайн old-guy

  • Новичок
  • **
  • Сообщений: 20
  • Карма: +4/-0
    • Награды
Re: Кодировки MySQL. Сос!
« Ответ #1 : 14:20, 10 Июнь, 2014 »
при создании базы имеют одну кодировку
при записи этих данных в базу они могут иметь другую кодировку
при дампе, по идее выливать должен в кодировку по-умолчанию консоли
при майскульадм дампе должен выливать в кодировку базы данных

При заливании базы - то же самое

дамп имеет одну кодировку, база может иметь другую

Все будет хорошо, когда все эти кодировки начнут соответствовать .



Оффлайн ExGoth

  • Молодой камчадал
  • ***
  • Сообщений: 647
  • Карма: +113/-4
  • Пол: Мужской
    • Награды
Re: Кодировки MySQL. Сос!
« Ответ #2 : 14:56, 10 Июнь, 2014 »
при создании базы имеют одну кодировку
при записи этих данных в базу они могут иметь другую кодировку
при дампе, по идее выливать должен в кодировку по-умолчанию консоли
при майскульадм дампе должен выливать в кодировку базы данных

При заливании базы - то же самое

дамп имеет одну кодировку, база может иметь другую

Все будет хорошо, когда все эти кодировки начнут соответствовать .

Да я вроде конвертнул базу, проверил все таблицы, в майадмине изменил кодировку соединения. Кодировка сервера - по умолчанию UTF8 - c ней ничего не сделаешь. Самое интересное, что на локальном денвере - все работает нормально, а на хостинге - нет. Из чего я делаю вывод что проблема именно в настройках сервера БД и кодировках самой БД. Но что еще можно накрутить - ума не приложу.

Либо, как вариант - зайти с другой стороны и искать дампер, который мог бы конвертить кодировку заливаемого дампа. Sypex Dumper это умеет, но при заливке 1С-ного дампа он выполняет его пока не отвалится по таймауту (таймаут - 10 минут). Шкала выполнения доходит до 100%, но вот что-то не жует он эти дампы, хотя свои собственные - за милисекунды перезаливает.


Оффлайн old-guy

  • Новичок
  • **
  • Сообщений: 20
  • Карма: +4/-0
    • Награды
Re: Кодировки MySQL. Сос!
« Ответ #3 : 15:54, 10 Июнь, 2014 »
дампаем базу
mysqldump --hex-blob --user=root --password=password --host=mybox mydatabase --default-character-set=latin1 > mydatabase.latin1.s ql

изменяем команду с заголовком кодировки
sed -e 's/latin1/utf8/g' mydatabase.latin1.s ql > mydatabase.utf8.sql

конвертируем из cp1251 в utf8
iconv -f cp1251 -t utf8 mydatabase.utf8.sql > mydatabase.utf8.sql

потом пробуем заливать

 





Совместные покупки

! Правила форума. Обязательно к прочтению | Обсуждение работы форума 
Инструкция по работе с форумомНаписать администрации | Реклама +7 (987) 751-1-777(МТС)


Надежный хостинг по нормальной цене

Яндекс.Метрика Рейтинг@Mail.ru ТИц, PR
 
Данный форум не является СМИ в соответствии с Законом №2124-1.