Не удается получить доступ к таблицам из поврежденного файла дампа MySQL - PullRequest
0 голосов
/ 28 сентября 2018
grep -n "Table Structure" dumpfile.sql 

возвращает

XXXXXX:-- Table structure for table `table_name_1`
XXXXXX:-- Table structure for table `table_name_2`
XXXXXX:-- Table structure for table `table_name_3`

Но после этой точки он ломается.Не знаете почему?

И также Для извлечения одной таблицы из огромного файла дампа (около 489 ГБ) я использовал:

sed -n -e '/Table Structure 'table_name'/p' dump_file_name.sql > extracted_file.sql

Но он не может найти table_name.

Итак, мой вопрос здесь.Как получить доступ ко всем таблицам?Или почему после определенного стола он не может найти стол.

Пожалуйста, если кто-нибудь может мне помочь с этим.Это будет величайший поступок!

1 Ответ

0 голосов
/ 28 сентября 2018

У вас две проблемы с вашей командой sed.

Во-первых, вы используете одинарные кавычки внутри строки, разделенной одинарными кавычками.Это не сработает, потому что внутренние кавычки просто заканчивают строку оболочки, а не включаются буквально.

Во-вторых, кавычки в файле дампа являются обратными кавычками, а не одиночными кавычками.

Такжевы пропускаете for table в вашем шаблоне, а s в structure должно быть в нижнем регистре.

sed -n -e '/Table structure for table `table_name`/p' dump_file_name.sql > extracted_file.sql

Но вы можете просто использовать grep для этого, вам не нужноsed:

grep 'Table structure for table `table_name`' dump_file_name.sql > extracted_file.sql
...