Допустим. вы переустанавливаете MySQL-сервер. В прошлом у вас была какая-то БД. Поставив MySQL заново, при условии что в конфиге одно и тоже значение у переменной datadir, вы получите доступ к своей прежней БД.
Возьмем случай, что вы не в курсе, была ли сохранена база (имя - "mybase") или нет.
1) Вы запускаете:
"%PROGRAMFILES%\MySQL\MySQL Server 5.5\bin\mysql" -uroot -p123456 -e "CREATE DATABASE IF NOT EXISTS mybase"
Безопасная команда, как видим.
2) Затем заносите в нее данные:
"%PROGRAMFILES%\MySQL\MySQL Server 5.5\bin\mysql" -uroot -p123456 mybase < myolddump.txt
Файл myolddump.txt имеет такое содержимое:
DROP TABLE IF EXISTS `my_main_table`;
CREATE TABLE `my_main_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8;
--
-- Dumping data for table `my_main_table`
--
LOCK TABLES `my_main_table` WRITE;
INSERT INTO `my_main_table` VALUES (1,'строка1'),(2,'строка2'),(3,'строка3'),(4,'строка4'),(5,'строка5');
UNLOCK TABLES;
Вместо :
DROP TABLE IF EXISTS `my_main_table`;
CREATE TABLE `my_main_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8;
вероятно нужно написать:
CREATE TABLE IF NOT EXISTS `my_main_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8;
А еа что заменить участок
LOCK TABLES `my_main_table` WRITE;
INSERT INTO `my_main_table` VALUES (1,'строка1'),(2,'строка2'),(3,'строка3'),(4,'строка4'),(5,'строка5');
UNLOCK TABLES;
?