1 (изменено: Набоков, 2008-09-27 17:48:33)

Тема: Как найти и удалить в БД остатки недоудалённого профиля?

У меня есть форум, к которому прикручен мод блогов. Недавно зарегистрировавшийся (а это единственное условия позволяющее открывать блог) на форуме спамер открыл блог со спамом. Я удалил его профиль на форуме, понадеявшись, что вместе с ним удалится и блог. Однако остались ошмётки профиля в блогах http://bolshoyforum.org/forum/index.php?action=felblog - DC's Blog  и его сообщения, которые теперь не убираются никакими силами форумного интерфейса Админки. (То есть надо удалять сначала блог, а потом профиль.) Мне посоветовали на форуме поддержки данного движка (да, наверное, и на любом другом бы посоветовали тоже самое), удалить это в MySQL.
      Захожу через phpMyAdmin в БД, вижу, что за данный мод отвечает серия таблиц: 
smf_felblog_categories
smf_felblog_cmnt_log
smf_felblog_comments
smf_felblog_content
smf_felblog_cont_log
smf_felblog_manager
smf_felblog_ratings
smf_felblog_settings

      Делаю запрос поиска на название блога – удалённого профиля юзера форума с ником DC, который движок преобразовывает в списке блоггеров как  DC's Blog. Получаю ответ:
0 вхождения(ий) в таблице smf_felblog_categories         
0 вхождения(ий) в таблице smf_felblog_cmnt_log         
1 вхождения(ий) в таблице smf_felblog_comments       
0 вхождения(ий) в таблице smf_felblog_cont_log         
2 вхождения(ий) в таблице smf_felblog_content       
21 вхождения(ий) в таблице smf_felblog_manager       
0 вхождения(ий) в таблице smf_felblog_ratings         
3 вхождения(ий) в таблице smf_felblog_settings
с предложением просмотра или удаления.
      Если я удалю найденное, к чему это приведёт, не запорется ли вся БД блогов, и на правильном ли я пути? Если же удаление не будет иметь негативных последствий, то удалится ли и статья спамера, или её тоже нужно искать по своим словам?

      Не являясь никаким боком системно образован в данном вопросе, не владея даже понятийным и терминологическим аппаратом, без консультаций со специалистом я просто не смогу решить проблему. Буду очень благодарен даже за совет и указание направления движения.

      П.С. Кажется, я ошибся разделом, и надо было открывать тему чуть ниже. Извините. Если так, то перебросьте её туда.

2

Re: Как найти и удалить в БД остатки недоудалённого профиля?

Набоков
Вы не указали каким запросом делали поиск - что важно. В любом случае, обратите внимание на данные, которые удаляете, возможно к спамеру они отношения не имеют.

Не будучи в состоянии разбираться с указанным вами скриптом, посоветую предельно простой вариант:
1) Закрываем на время доступ к форуму;
2) Делаем дамп тех таблиц, которые имеют вхождения искомого, либо всей БД в целом;
3) Сохраняем только строки вхождений, которые вы будете удалять (чтобы затем легче было их восстановить), делается это с помощью ссылки "Экспорт" в блоке "Использование результатов запроса";
4) производим удаление строк имеющих вхождения при поиске (опять-таки - смотрите что удаляете).

После удаления смотрим на результат и работоспособность админки. Если возникли проблемы, то сперва восстанавливаем удалённые строки, которые сохранили в пункте 3; если их восстановление не поможет, то импортируем полный дамп.

Будьте осторожны с данными, здесь нет кнопки Undo!

Re: Как найти и удалить в БД остатки недоудалённого профиля?

Hanut сказал:

Набоков
Вы не указали каким запросом делали поиск - что важно.

Вошёл в phpMyAdmin, с левой стороны вверху перечень баз данных (у меня всего одна). Вхожу в неё, - открывается таблица таблиц. Вверху есть кнопка «Поиск». Нажимаю. Открывается окно, где можно выбрать таблицы и ввести искомое слово.

В любом случае, обратите внимание на данные, которые удаляете, возможно к спамеру они отношения не имеют.

Так об этом и хотел вас спросить. Там набор символов среди которых много раз попадается заданное слово.

2) Делаем дамп тех таблиц, которые имеют вхождения искомого, либо всей БД в целом;

А как сделать дамп?

3) Сохраняем только строки вхождений, которые вы будете удалять (чтобы затем легче было их восстановить), делается это с помощью ссылки "Экспорт" в блоке "Использование результатов запроса";

А что значит, «строки вхождений»? Это то, что я задавал в поиске?

4) производим удаление строк имеющих вхождения при поиске (опять-таки - смотрите что удаляете).

Так, знать бы, что среди этой груды символов чего означает!

После удаления смотрим на результат и работоспособность админки. Если возникли проблемы, то сперва восстанавливаем удалённые строки, которые сохранили в пункте 3; если их восстановление не поможет, то импортируем полный дамп.

Не могли бы вы описать процедуру восстановления и импорта?

Видимо, так и придётся всё это пробовать на локальном сервере (Дэнвере), где у меня экспериментальный движок развёрнут. Устройство «Дэнвера» схоже с phpMyAdmin?

4

Re: Как найти и удалить в БД остатки недоудалённого профиля?

Набоков сказал:

Так об этом и хотел вас спросить. Там набор символов среди которых много раз попадается заданное слово.

Здесь я не могу помочь. С объяснением структуры таблиц и данных мог бы помочь разработчик, либо сообщество пользователей скрипта.

Набоков сказал:

А как сделать дамп?

Выбираем БД, нажимаем "Экспорт", выбираем нужные таблицы, отмечаем галочку "Сохранить как файл" и жмём "OK".

Набоков сказал:

А что значит, «строки вхождений»? Это то, что я задавал в поиске?

Это те строки, в которых было найдено то что вы искали.

Набоков сказал:

Так, знать бы, что среди этой груды символов чего означает!

Покажите хоть, о каких символах речь идет.

Берем файл, который создали при экспорте, переходим на страницу импорта, а там уже все очевидно.

В Денвере есть phpMyAdmin, и вы можете его смело использовать для экспериментов с данными.