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

Not a Bug Mysqli prepare error: Can't find file: 'xf_user_field_value' (errno: 2)

Тема в разделе "Баги XenForo", создана пользователем metallphilin, 14.07.2012.

Загрузка
  1. metallphilin

    metallphilin Пользователь

    Регистрация:
    20.12.11
    Сообщения:
    21
    Симпатии:
    3
    Версия XF:
    1.1.2
    Не с того не с сего начала вываливаться такая ошибка при попытке посмотреть _любой профиль, _любого пользователя.

    Что интересно на сервере (в файлах базы данных MYSQL) физически отсутсвует файл xf_user_field_value.MYI

    когда xf_user_field_value.MYD и xf_user_field_value.fm на месте.

    За что отвечает данная таблица?


    Пробовал установить форум заного на Денвере, так по адресу Z:\usr\local\mysql-5.1\data\xenrecover

    он создал только файл с расширением fm.

    хотел подсунуть.
     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    В этой таблице содержатся значения пользовательских полей.
     
  3. metallphilin

    metallphilin Пользователь

    Регистрация:
    20.12.11
    Сообщения:
    21
    Симпатии:
    3
    Версия XF:
    1.1.2
    это я уже понял. вопрос, у меня есть файл xf_user_field_value.MYD он весит прямо скажем нормально, для чего используется xf_user_field_value.MYI в файлах базы данных в фаловой системе сервера.

    Дело в том что база на столько огромна, что проще копировать сами файлы базы данных, нежели делать любые дампы, любыми дамперами. В несжатом виде - это порядка 5Гб, база.

    Вопрос как "вернуть" файл xf_user_field_value.MYI бекапа к сожалению нет. не спрашивайте почему :,(
     
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    А восстанавливать таблицу пробовали? Ведь по идее это индексный файл, который должен при необходимости заново создаться. В крайнем случае попробуйте скопировать какой-нибудь аналогичный MYI от другой таблицы, а затем проверить и восстановить таблицу xf_user_field_value.
    Только не забудьте перед этим (после копирования другого MYI) перезапустить сервер MySQL.
     
    metallphilin нравится это.
  5. metallphilin

    metallphilin Пользователь

    Регистрация:
    20.12.11
    Сообщения:
    21
    Симпатии:
    3
    Версия XF:
    1.1.2
    пробовал восстанавлиать phpmyadmin*ом. пишет аналогичную ошибку, подсунул другой файл и запустить востановление, пишет неверный ключ.


    Incorrect key file for table 'xf_user_field_value'..

    вопрос по ходу сводится к тому, как востановить индексы в таблице базы MySQL.
     
  6. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Хм. А нет такого файла (MYI), только frm. Т.е. не нужен там вообще этот файл. Все должно работать без него.
    В таком случае либо пробовать восстановить непосредственно самим MySQL (не через phpmyadmin), либо создать пустую таблицу и затем ее подсунуть вместо "убитой".
    --- добавлено : 15 июл 2012 в 12:28 ---
    Э нет... Файл этот появится, как только таблица заполнится... Ну и фиг с ним. Создайте новую таблицу, создайте пользовательские поля, затем в каком-нибудь пользователе введите пользовательские данные в этом поле. Таким образом все файлы должны появиться. После этого можно попробовать остановить сервер, скопировать только MYD и frm, не трогая MYI. Затем проверить и восстановить таблицу. Ну и там видно будет, заработает оно или нет.

    Это так, навскидку.
     
  7. metallphilin

    metallphilin Пользователь

    Регистрация:
    20.12.11
    Сообщения:
    21
    Симпатии:
    3
    Версия XF:
    1.1.2
    http://www.sql.ru/forum/actualthread.aspx?tid=327077 - вот на гуглил. Говорят можно восстановить, используя USE_FRM

    Дальше веселей:
    да в том-то и дело, что поставил на Денвере читсую установку, завел пару юзеров, с целью выдрать этот файл и туда сунуть. Денвер ничего не создал. :/
    --- добавлено : 15 июл 2012 в 12:40 ---
    Все, разрулил.

    Команда

    mysql> REPAIR TABLE `xf_user_field_value` USE_FRM ;

    на ура восстанавливает потерянный MYI файл.

    то есть набор команд такой с консоли:

    #> mysql -u user -p password //входим консоль MySQL
    mysql > use name_base ; // указываем с какой базой будем работать
    mysql> REPAIR TABLE `xf_user_field_value` USE_FRM ; // указываем что восстанавливаем.


    тему можно считать закрытой. infis, спасибо!
     
    Romchik® нравится это.
  8. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Ну вот, как оказалось, что и помочь в общем ничем и не смог :)
    Единственное - не всегда можно и нужно восстанавливать через phpmyadmin, о чем я указал. Нужно было через консоль, что и получилось. Зато теперь есть туториал по восстановлению убитого индексного файла :)
     

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