1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Проблема с БД. Срочно нужна помощь!

Тема в разделе "Основные вопросы по XenForo", создана пользователем Ariomit, 21.06.2012.

Загрузка
  1. Ariomit

    Ariomit Местный

    Регистрация:
    17.03.12
    Сообщения:
    6
    Симпатии:
    2
    Версия XF:
    1.1.2
    Вообщем столкнулся с такой вот проблемой. Решил обновиться до 1.1.3(у меня лицензия), на всякий случай сделал бэкап БД, и все каталогов сайта.
    Попробовал обновиться, но забыл отключить сторонние дополнения, и мне покоцало БД. Я решил восстановиться, удалил БД, удалил все файлы с сайта, и залил по новой бэк.
    Но столкнулся с такой проблемой, у меня БД скачано простым документом размером в 45 метров, но в phpMyAdmin разрешено заливать максимум 2 метра. Я попробовал сжать все в позволенный форматы архива, но вышло 2.5 метра. Я попробовал разделить все в 2 документа(просто в одном удалил половину, и добавил в другой), и заорхивировал. Все залилось, но выглядит вот так как на прикрепленной картинке, тоисть весь текст исчез.
    Помогите, подскажите, спасайте!!!
     

    Вложения:

  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Установите Dumper и уже с помощью него нормально залейте дамп.
     
    Ariomit нравится это.
  3. Ariomit

    Ariomit Местный

    Регистрация:
    17.03.12
    Сообщения:
    6
    Симпатии:
    2
    Версия XF:
    1.1.2
    Спасибо, буду пробовать, если получиться, с меня пиво:))
     
  4. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Только если дамп делался с PHPMyAdmin, то не факт, что он был сделан в корректной кодировке. Сделать бэкап не всегда достаточно. После этого еще нужно убедиться, что он сделан не криво и контент читается внутри.
     
  5. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Если форум стоял ранее, то почти наверняка кодировка была корректная. Все же ксен не умеет работать с cp1251 :)
    Скорее всего банально не могут залиться записи из нарезанных кусков. Ладно, посмотрим, чем закончится :)
     
  6. Ariomit

    Ariomit Местный

    Регистрация:
    17.03.12
    Сообщения:
    6
    Симпатии:
    2
    Версия XF:
    1.1.2
    Вот принтскрин куска базы с текстом, вроде все корректно видно.
     

    Вложения:

  7. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Да. По идее дамп корректный. Пробуйте сайпекс. Он без проблем заливает большие базы.
     
  8. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Это да. Но часто бывает дамп при этом создается нерабочий. Хотя с UTF может и меньше проблем.
     
  9. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    С utf8 таких проблем, как с cp1251 в принципе быть не может. Там ошибка сразу же вылезет. Вот с отдельными полями могут быть проблемы (обычно из-за дефолтного latin1). Но это касается уже, как правило, плагинов, а не движка. В общем есть некоторые нюансы, но мультибайтная кодировка в данном случае спасает от детских проблем.
     
  10. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Вообще, если есть доступ по SSH, то лучше уже имеющийся дамп залить командой mysql:
    Код:
    mysql -u <имя пользователя> -h <адрес базы, если не localhost> -p <имя базы> < <путь к дампу>
    Сайпекс, насколько я помню, заливать умел только дампы в своем формате.
     
  11. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Нет, Sypex заливает дампы любого вида, но отображает таблицы дампа с возможностью выбора таблиц для импорта - только в том случае, если дамп делался с помощью Sypex Dumper.
    Проще конечно через SSH экспортировать/импортировать, особенно если база огромная, а хостинг слабенький. Но нужно быть аккуратным, так как Putty, если не ошибаюсь, дампит в UTF-8 кодировке.

    Кстати, ТС, юзай Sypex Viewer - глянь в какой кодировке таблицы.. или же в PMA посмотри это.

    ---
    ТС, контакты в подписи. Если срочно, могу помочь.
     
  12. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Можно первым дампером пользоваться. Там вроде такой проблемы не стоит.
     
  13. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Кодировка клиента Putty может быть любой. Также и кодировка консоли может быть любой.
    Вообще заливать базу через шел, очевидно, правильней. К тому же можно заливать любые объемы. Но вот с кодировками консоли и клиента могут быть различные проблемы. Особенно, на зарубежных хостингах. Поэтому консолью нужно уметь пользоваться, что для большинства является проблемой. Если пользователь достаточно продвинут, то он, обычно, и так знает, что такое кодировка, как заливать через консоль и т.д.

    P.S. Putty сам по себе ничего не дампит. Да и даже при неверной кодировке, выставленной в Putty, дамп зависит не от него, а от кодировки самой консоли :)
     
    TAIFUN нравится это.
  14. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Забудьте про такую вещь, как кодировка консоли. Она влияет только на то, что вы видите и то, что вы вводите с клавиатуры. Остальное полностью зависит от используемых программ. Конкретно mysql считывает файл, используя заданную стандартную кодировку (в конфиге или ключом --default-character-set=кодировка) до тех пор, пока не встретит команду SET NAMES. Гарантированный способ заставить mysql воспринимать файлы в utf-8 как utf-8 - это добавить в начало:
    Код:
    SET NAMES utf8;
    Кстати, запомните, названия кодировок в mysql пишутся без дефисов.
     
    TAIFUN нравится это.
  15. Ariomit

    Ariomit Местный

    Регистрация:
    17.03.12
    Сообщения:
    6
    Симпатии:
    2
    Версия XF:
    1.1.2
    И так, удалил все на ФТП данного сайта, залил бэк, что сегодня сливал на комп, через скрипт Dumper залил БД, все темы начали отображаться, но появилась новая трабла, пытаюсь зайти под логином админа, выдает "На сервере произошла ошибка. Пожалуйста, попробуйте позже" картинка прилагается.
     

    Вложения:

  16. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    А вот тут Вы ошибаетесь. В команде:
    Код:
    mysql -u <имя пользователя> -h <адрес базы, если не localhost> -p <имя базы> < <путь к дампу>
    
    Есть один символ - "<". Именно он работает через локаль (кодировку) консоли. Считывание данных из файла происходит именно в той кодировке, в которой работает пользователь, запускающий эту команду. И, если консоль будет стоять, к примеру, CP1251, а файл с дампом будет в кодировке UTF-8, то на вход mysql получит кашу. К слову, в этой команде можно с успехом делать перекодировку через тот же recode, например. Ибо символ "<" в консоли - это перенаправление вывода. Это важно. Таким образом можно и через sed прогнать, изменив latin1 в utf8, не редактируя перед этим дамп.
    Смотрите логи апача или чего у Вас стоит - там будет содержаться детальная информация об ошибке.
     
  17. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Если б было так, как вы говорите, tar | gzip бы не работало, ибо в кодировке utf-8 любой бинарник с вероятностью, близкой к 1, превращается в труху. Но я могу ошибаться. Приведите конкретную последовательность команд, доказывающую вашу точку зрения.
     
  18. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Упс. Посыпаю голову пеплом. Локаль действительно тут не играет роли. В пайпах локаль не работает. Локаль влияет на работу команд, но не на сам пайп. Так что дамп можно заливать в любой кодировке. А для конвертации на лету и редактирования нужно использовать что-то типа:
    Код:
    cat файл.sql|recode ...|sed ...|mysql -u -p -D...
     

Поделиться этой страницей