бинарная база в mysql

Тема в разделе "Базы данных", создана пользователем Sysfaray, 5 фев 2018.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Sysfaray

    Sysfaray

    Регистр.:
    7 окт 2007
    Сообщения:
    162
    Симпатии:
    75
    Подскажите куда копать?

    После переезда на другой хостинг, русские символы в phpmyadmin отображаются в виде:

    d09ed0bfd0b8d181d0b0d0bdd0b8d0b5
     
  2. starwanderer

    starwanderer

    Регистр.:
    20 ноя 2016
    Сообщения:
    888
    Симпатии:
    1.541
    У сервера есть выставленное по умолчанию сравнение для таблиц. И особенно, если хостинг забугорный, оно может быть без поддержки символов русского алфавита.
    На большинстве российских хостингов "сравнение по умолчанию" выставлено с учетом русских символов.

    В PhpMyAdmin сравнение для таблиц видно при просмотре структуры базы данных.

    Насколько я понимаю, вы восстанавливали БД из бэкапа.
    Пересоздайте базу данных заново с указанием сопоставления.
    Если ещё возможно, посмотрите какое сопоставление было на прошлом хостинге.
    Если нет возможности, то попробуйте utf8_general_ci
    Или есть более новые варианты: utf8mb4_unicode_ci , utf8mb4_unicode_520_ci.

    И потом в эту БД выполните восстановление бэкапа.[​IMG]
     
    Последнее редактирование: 5 фев 2018
  3. Sysfaray

    Sysfaray

    Регистр.:
    7 окт 2007
    Сообщения:
    162
    Симпатии:
    75
    Благодарю за участие в дискуссии.
    Я перепробывал всё вами описанное.

    Пробуйте если не сложно


    Допустим таблица page после экспорта я так понимаю в бинарном виде.
     
    Последнее редактирование: 5 фев 2018
  4. starwanderer

    starwanderer

    Регистр.:
    20 ноя 2016
    Сообщения:
    888
    Симпатии:
    1.541
    Похоже понял о чем речь.
    У вас текстовые данные хранятся в полях типа varbinary.
    Это бинарные данные, поэтому их phpmyadmin и показывает как бинарные.
    Главное, чтобы они в скрипте отображались нормально.
    Последняя версия phpmyadmin 4.7.7 умеет определять что в бинарной переменной хранятся символьные данные.
    Она отображает их правильно.
    Может у вас на прошлом хостинге стояла phpmyadmin из последних версий.
    Возможно, ещё имеет значение версия libmysql.
     
    Последнее редактирование: 6 фев 2018
  5. Sysfaray

    Sysfaray

    Регистр.:
    7 окт 2007
    Сообщения:
    162
    Симпатии:
    75
    Вообщем решилось:

    binary заменены на char
    varbinary заменены на varchar

    ENGINE=InnoDB DEFAULT CHARSET=binary
    Заменены на
    ENGINE=InnoDB DEFAULT CHARSET=utf8

    mediawiki с недавних времён всё читает в utf8 игнорируя параметры.

    Спасибо! мб кому-то поможет.
     
  6. starwanderer

    starwanderer

    Регистр.:
    20 ноя 2016
    Сообщения:
    888
    Симпатии:
    1.541
    Хотел вам предложить изменить типы полей на char и varchar.
    Есть одна ремарочка. Нужно помнить, что вы произвели замену.
    До 2011 года, у MediaWiki поля и были символьные, а потом они изменили их на бинарные. С благой целью, чтобы не было проблем с сопоставлениями при восстановлении из бэкапов.
    Как поведет себя скрипт при обновлениях ?
    Резюмируя: способ получить удобство для опытных, новичкам не стоит менять типы полей, можно потом заблудиться.
     
  7. Sysfaray

    Sysfaray

    Регистр.:
    7 окт 2007
    Сообщения:
    162
    Симпатии:
    75
    Оставлю пока в utf8. Проявятся глюки, исправим ;)

    как сделать backup mediawiki:

     
    starwanderer нравится это.
Статус темы:
Закрыта.