1

Тема: Проблема с импортом дампа после взлома

Добрый день!
такая ситуация. 27 июля взломали сайт, удалили все содержимое фтп и кака я понял содержимое БД тоже убили.

на сайте был форум Инвижн и портал пхп нюк.

phpMyAdmin 2.6.4-pl4

запросил дамп базы данных и бекап фтп у хостера за 26июля. Все восстановили. Вот теперь пробую импортировать дамп в phpmyadmin (размером 4 101 564 байт) через закладку SQL.

после загрузки появляется сообщение:

Ваш SQL-запрос был успешно выполнен:
Содержимое файла было импортировано. (wwwindigoclanru.26_jul.sql: 162 Инструкции)   

В БД не обнаружено таблиц.

вот собстенно проблема в этом. как восстановить таблицы? сам форум при попытке зайти на главную страницу выдает ошибку БД:

mySQL query error: SELECT * FROM ibf_cache_store WHERE cs_key IN ( 'chatting','birthdays','calendar','rss_calendar','rss_export','components','banfilters','settings','group_cache','systemvars','skin_id_cache','forum_cache','moderators','stats','languages' )

SQL error: Table 'wwwindigoclanru.ibf_cache_store' doesn't exist
SQL error code:
Date: Friday 28th of July 2006 04:29:48 PM

п.с. смотрел содержимое дампа..там есть строки типа CREATE TABLE `ibf_admin_logs`и т.д.

2

Re: Проблема с импортом дампа после взлома

Master Pz
Дамп большой. Скорее всего требуются настройки php.ini, а хостер вряд ли даст тебе его править.

Попробуй импортировать дамп по частям. Обычно сначала идет CREATE TABLE, затем INSERT.

Перво-наперво создай таблицу, а затем попробуй вставить за раз по 100-200 записей. Для проверки попробуй сначала через окно ввода SQL-запроса.

3

Re: Проблема с импортом дампа после взлома

Experior

я чайник в этом деле...

можете пошагово описать что делать?

4

Re: Проблема с импортом дампа после взлома

Master Pz

я чайник в этом деле...

а ник взял - 'мастер'... big_smile

можете пошагово описать что делать?

постараюсь.

Комментарии в дампе предваряются знаком решетки # их можно убирать
После комментариев, обычно следует SQL-запрос на создание таблицы - CREATE TABLE, после которого, обычно идут запросы-вставки - INSERT INTO, которые как раз-таки и вставляют записи в созданную на предыдущем этапе таблицу. Если таблица уже создана, а в дампе присутствует запрос на её создание, тогда MySQL выдаст ошибку о попытке создания таблицы, которая уже есть в базе. Однако этого можно избежать, если при создании дампа (импорте) указать опцию "Add 'drop table'", которая добавляет в дамп как раз перед каждым запросом CREATE TABLE запрос типа 'DROP TABLE IF EXISTS...', который будет удалять имеющуюся в базе таблицу.

Встречаются также "подводные камни", когда при создании таблицы указывается DEFAULT CHARSET после скобки, дело в том, что этот запрос характерен для MySQL старых версий. Поэтому его нужно либо убрать вручную, либо при создании дампа указывать совместимость с MySQL40.

теперь о запросе. Имеем запрос:

# phpMyAdmin SQL Dump
# version 2.8.2
# http://www.phpmyadmin.net
#
# Host: localhost
# Generation Time: Aug 01, 2006 at 09:54 AM
# Server version: 4.1.13
# PHP Version: 5.0.4
# 
# Database : `master_pz`
# 

# --------------------------------------------------------

#
# Table structure for table `finish`
#

CREATE TABLE `finish` (
  `id` tinyint(3) unsigned NOT NULL auto_increment,
  `name` varchar(40) NOT NULL default '',
  `gamut` tinyint(3) unsigned NOT NULL default '1',
  `type` enum('painting','finishing') NOT NULL default 'painting',
  `img` varchar(40) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=48 ;

#
# Dumping data for table `finish`
#

INSERT INTO `finish` VALUES (1, 'черный', 1, 'painting', 'img/finish/01.jpg');
INSERT INTO `finish` VALUES (2, 'коричневый', 2, 'painting', NULL);
INSERT INTO `finish` VALUES (3, 'белый', 4, 'painting', 'img/finish/02.jpg');
INSERT INTO `finish` VALUES (4, 'шпон красного дерева', 2, 'finishing', 'img/finish/03.jpg');
INSERT INTO `finish` VALUES (5, 'шпон дуба', 3, 'finishing', 'img/finish/05.jpg');
INSERT INTO `finish` VALUES (6, 'орех', 3, 'finishing', 'img/finish/04.jpg');
INSERT INTO `finish` VALUES (7, 'разные', 1, 'painting', NULL);
INSERT INTO `finish` VALUES (8, 'шпон вишни', 3, 'finishing', 'img/finish/08.jpg');
INSERT INTO `finish` VALUES (9, 'ольха', 3, 'finishing', NULL);
INSERT INTO `finish` VALUES (10, 'шпон бука', 3, 'finishing', 'img/finish/06.jpg');
INSERT INTO `finish` VALUES (11, 'шпон клена', 3, 'finishing', NULL);
INSERT INTO `finish` VALUES (13, 'айвори (слоновая кость)', 3, 'painting', NULL);
INSERT INTO `finish` VALUES (14, 'бубинго', 2, 'finishing', 'img/finish/09.jpg');
INSERT INTO `finish` VALUES (15, 'голубой', 5, 'painting', NULL);
INSERT INTO `finish` VALUES (16, 'шпон эбенового дерева', 1, 'finishing', NULL);
INSERT INTO `finish` VALUES (17, 'редкие породы дерева', 2, 'finishing', NULL);
INSERT INTO `finish` VALUES (29, 'шпон сосны', 3, 'finishing', NULL);

1) Так вот, первым делом ты берешь из этого дампа запрос на создание таблицы finish, предварительно убрав 'DEFAULT CHARSET=latin1', и помещаешь следующее содержимое в окно ввода SQL-запросов на вкладке SQL:

CREATE TABLE `finish` (
  `id` tinyint(3) unsigned NOT NULL auto_increment,
  `name` varchar(40) NOT NULL default '',
  `gamut` tinyint(3) unsigned NOT NULL default '1',
  `type` enum('painting','finishing') NOT NULL default 'painting',
  `img` varchar(40) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=48 ;

Выполняешь запрос (кнопка 'Go'). Обновляешь левый фрейм, и проверяешь - должна создаться таблица - в нашем случае `finish`. Если получилось - переходим ко второму шагу.

2) Теперь нужно заполнить таблицу записями. За это отвечают запросы INSERT INTO. Вот здесь тебе и придется брать кусками по 100-300 записей. Копируешь из основного дампа группу запросов:

INSERT INTO `finish` VALUES (30, 'груша', 3, 'finishing', NULL);
INSERT INTO `finish` VALUES (31, 'каповый орех', 3, 'finishing', NULL);
INSERT INTO `finish` VALUES (32, 'корневые породы ореха', 3, 'finishing', 'img/finish/13.jpg');
INSERT INTO `finish` VALUES (33, 'палисандр', 2, 'finishing', 'img/finish/10.jpg');
INSERT INTO `finish` VALUES (34, 'пламенное красное дерево', 2, 'finishing', 'img/finish/12.jpg');
INSERT INTO `finish` VALUES (35, 'темный орех', 3, 'finishing', NULL);
INSERT INTO `finish` VALUES (36, 'черешня', 3, 'finishing', NULL);

И также как и предыдущий запрос - вставляешь в окно ввода запросов на вкладке - SQL, выполняешь запрос. Проверь - таблица должна пополниться записями. Если все получилось - берешь новую порцию запросов INSERT и выполняешь, пока не запишешь все строки.

Затем переходишь к следующей таблице - и повторяешь шаги: создаешь таблицу, заполняешь её.

Есть альтернативный вариант - при импорте указывать с какой по какую запись вставлять, но там легко запутаться. Поэтому пробуй копи-пастом.

Удачи.

5

Re: Проблема с импортом дампа после взлома

спасибо, вечером попробую) отпишу по результату