http://pastebin.com/vDHdG2T6 (использовал Pastebin, так как он довольно длинный)
Я знаю, что вместо этого мне следовало использовать mysqldump, так как он пропустил бы таблицу Information_schema.
Есть ли у вас какие-либо предложения, как решить эту проблему или импортировать этот файл без необходимости редактировать миллион строк файл?
Я также пробовал импортировать файл следующим образом:
mysql -u root -p -f -h localhost < Documents/localhost.sql
Это действительно импортировало базы данных, но многие из них были повреждены, отсутствовали таблицы и тому подобное... Я использовал -f, чтобы работа продолжалась независимо от ошибок.
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Спасибо, ребята, за предложения, я уверен, что вы были на правильном пути. Однако тем временем я испортил свой файл резервной копии, поэтому мне пришлось написать небольшой PHP-код, чтобы извлечь нужные мне строки.
Вот на случай, если у кого-то возникнет такая же проблема:
Код: Выделить всё
$data = file_get_contents('import.sql');
if (! isset($_GET['db'])) {
//list databases
echo '[list]';
preg_match_all("/Database: `(.*?)`/", $data, $dbs);
foreach ($dbs[1] as $database){
echo "[*][url=\]$database[/url]";
}
echo '[/list]';
} else {
$database = $_GET['db'];
//only get the queries for that db
$data = explode(PHP_EOL, $data);
$buffer = array();
$buffer_started = false;
foreach ($data as $key => $row){
if (preg_match("/Database: `.*?`/", $row) && $buffer_started) {
array_pop($buffer);
break;
}
if (preg_match("/Database: `$database`/", $row)) {
$buffer_started = true;
continue;
}
if ($buffer_started) {
array_push($buffer, $row);
}
unset($data[$key]);
}
echo ''.implode("\n", $buffer).'';
}
Удачи.
Подробнее здесь: https://stackoverflow.com/questions/963 ... phpmyadmin
Мобильная версия