Перейти до вмісту

20 листопада 2011

SQL-запити для форуму IPB

Вчора дуже багато моїх сайтів впало (та й досі лежать) через те, що було велике навантаження на сервер. Хтось масово відсилав приватні повідомлення всередині форуму IPB. Так ось, виявилось, що давно я не звертав увагу, а на форумі вже зареєструвалось близько 150 тисяч роботів. Коли я глянув на розмір бази даних MySql – було шось близько 1 Гбайту. Це включало в себе профілі користувачів, внутрішні повідомлення, логи пошукових систем та інше. Через панель управління видалити це швидко не вийде, адже не вистачає ресурсів системи для обробки такої кількості інформації.

Так ось, ці проблеми можна вирішити через певні SQL-запити, які Ви побачите далі. Раджу “почистити” Ваш форум IPB – так як база даних може розростатись до величезних розмірів… А також це нікому не потрібні навантаження на сервер.


Видалити всі приватні повідомлення:

TRUNCATE ibf_message_topics;
TRUNCATE ibf_message_text;
UPDATE ibf_members SET new_msg = ‘0’, msg_total = ‘0’  WHERE id>0;

Видалити всі логи пошукових павуків:

Truncate TABLE ibf_spider_logs

Видалити користувачів, у яких 0 повідомлень

DELETE FROM ibf_members WHERE Posts = 0

Замінити певний текст у всіх повідомленнях на форумі:

UPDATE ibf_posts SET post = REPLACE(post,’старий текст‘,’новий текст‘);

Замінити текст у всіх описах форумів:

UPDATE ibf_forums SET Description = REPLACE ( description , ‘старий текст‘ , ‘новий текст‘ );

Очищення журналу попереджень конкретного користувача
де X – вставити id користувача, чий журнал ви хочете очистити.

Delete From ibf_warn_logs WHERE wlog_mid = X

Видалити підписи у всіх користувачів

Update ibf_member_extra Set Signature = ‘Ваш підпис видалено’ ;

Видалення модераторів

Delete From ibf_moderators

Видалення модератора з усіх форумів

Delete FROM ibf_moderators WHERE member_id = XX

Видалення модератора з певних форумів

Delete FROM ibf_moderators WHERE member_id = XX AND forum_id In ( 5 , 10 , 20 )

Видалення аватарів у всіх користувачів

Delete FROM ibf_member_extra WHERE avatar_location AND avatar_size

Масове перенесення користувачів з певною кількістю повідомлень з однієї групи в іншу:

Update ibf_members Set mgroup = B WHERE mgroup = А AND Posts > 0

Видалити користувачів певної групи, де a міняєте на номер групи

Delete FROM ibf_members WHERE mgroup = ‘b’ ;

Видалити всi ICQ номери користувачів

Update ibf_member_extra Set icq_number = ” ;

Видалити посилання на сайт у всіх користувачів

Update ibf_member_extra Set Website = ” ;

Зняття обов’язкового підтвердження модератором

UPDATE ibf_members SET mod_posts = ” ;

Зняття тільки читання / read_only

UPDATE ibf_members SET restrict_post = ” ;

Очищення журналу:

DELETE FROM ibf_warn_logs WHERE wlog_mid = id_користувача

Видалення всіх встановлених смайликів, тобто вони переходять в список невстановлених смайликів

Delete FROM ibf_emoticons

Установка кодування і порівняння БД за замовчуванням

ALTER DATABASE `назва_бд ` DEFAULT CHARACTER SET cp1251 Collate cp1251_general_ci

Анулювати лічильник повідомлень у всіх користувачів:

Update ibf_members Set Posts = 0 ” ;

Анулювати лічильник повідомлень у певних груп:

Update ibf_members Set Posts = 0 ” WHERE mgroup = ‘номер_групи’ ;

Видалення всіх повідомлень надісланих гостями

Delete FROM ibf_posts WHERE author_id = 0 ” ;

Замінити текст у всіх описах тем

UPDATE ibf_topics SET Description = REPLACE ( description , ‘старий текст’ , ‘новий текст’ );

Видалити всі теми, створені гостями

Delete FROM ibf_topics WHERE starter_id = 0 ” ;

Видалити всі повідомлення на форумі:

Delete FROM ibf_topics WHERE author_mode = ‘1 ‘ ;

Закрити всі відкриті теми

UPDATE ibf_topics SET State = ‘closed’ WHERE State = ‘open’

Відкрити всі закриті теми

UPDATE ibf_topics SET State = ‘open’ WHERE State = ‘closed’

Скасувати всі попередження

UPDATE ibf_members SET warn_level = 0

Перемістити форум в іншу категорію (A i B – номери категорій)

UPDATE ibf_forums SET parent_id = A WHERE parent_id = B

Скинути кількість переглядів профілю користувача (C – id користувача)

UPDATE ibf_members SET members_profile_views = 0 WHERE ID = C

Скинути кількість переглядів профілів всіх користувачів

UPDATE ibf_members SET members_profile_views = 0

Видалити лог завдань

Truncate TABLE ibf_task_logs

Видалити всі рейтинги профілів користувачів

Truncate TABLE ibf_profile_ratings

Видалити всіх друзів у всіх користувачів

Truncate TABLE ibf_profile_friends

Видалити всі коментарі користувачів

Truncate TABLE ibf_profile_comments

Видалити всі логи email

Truncate TABLE ibf_email_logs

Видалити всі БАН фільтри

Truncate TABLE ibf_banfilters

Видалити всі погані слова з фільтру

Truncate TABLE ibf_badwords

Видалити всі логи адміна

Truncate TABLE ibf_admin_logs

Видалити всі логи входу адміна

Truncate TABLE ibf_admin_login_logs

Вийти всім користувачам

Truncate TABLE ibf_sessions

Видалити модератора

DELETE FROM ibf_moderators WHERE member_id = m

Перемістити користувачів, у яких 0 повідомлень в іншу групу

UPDATE ibf_members SET mgroup = N WHERE Posts = 0 AND mgroup = o

Поділіться своїми думками, залишіть коментар!

Примітка: HTML не допускається. Вашу адресу електронної пошти ніколи не буде опубліковано.

Підписатися на коментарі