FAQ MYSQL: различия между версиями
Перейти к навигации
Перейти к поиску
Misha (обсуждение | вклад) Новая страница: «==Как сделать дамп базы данных со всеми процедурами и триггерами== При обычном дампе, проц…» |
Misha (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 4: | Строка 4: | ||
Если мы хотим включить в дамп только процедуры и триггеры без структуры и данных таблиц. (Это может быть полезным для переноса процедур и триггеров на другой сервер) | Если мы хотим включить в дамп только процедуры и триггеры без структуры и данных таблиц. (Это может быть полезным для переноса процедур и триггеров на другой сервер) | ||
<pre>mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql</pre> | <pre>mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql</pre> | ||
==Progress Bar при создании и загрузке дампа== | |||
Взято [http://dubbs.github.io/blog/2013/09/05/mysql-import-slash-export-progress-bar/ тут] | |||
<pre>$sudo apt install pv</pre> | |||
===Загрузка дампа=== | |||
<pre>pv /path/to/sqlfile.sql | mysql -uUSERNAME -pPASSWORD -D DATABASE_NAME</pre> | |||
===Сoздание дампа=== | |||
<pre>mysqldump -uUSERNAME -pPASSWORD DATABASE_NAME | pv -s 9999M > DATABASE_NAME.sql </pre> | |||
==Как из дампа базы данных вытащить дамп только одной таблицы== | |||
Взято [https://stackoverflow.com/questions/1013852/can-i-restore-a-single-table-from-a-full-mysql-mysqldump-file тут]<br> | |||
Допустим, нужны данные только таблицы '''name_table''' | |||
<pre>$ sed -n -e '/DROP TABLE.*`name_table`/,/UNLOCK TABLES;/p' dump_all.sql > name_table.sql</pre> | |||
Единственно, если будут проблемы с русским текстом, может понадобится шапка из дампа - все строки от начала до '''-- Table structure for table'''. Их надо вставить в начало файла table_dump.sql. |
Текущая версия от 09:16, 14 ноября 2022
Как сделать дамп базы данных со всеми процедурами и триггерами
При обычном дампе, процедуры и триггеры не попадают в дамп. Если мы хотим включить в дамп также процедуры и триггеры, нужно использовать параметр --routines в командной строке создания дампа
mysqldump <other mysqldump options> --routines outputfile.sql
Если мы хотим включить в дамп только процедуры и триггеры без структуры и данных таблиц. (Это может быть полезным для переноса процедур и триггеров на другой сервер)
mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql
Progress Bar при создании и загрузке дампа
Взято тут
$sudo apt install pv
Загрузка дампа
pv /path/to/sqlfile.sql | mysql -uUSERNAME -pPASSWORD -D DATABASE_NAME
Сoздание дампа
mysqldump -uUSERNAME -pPASSWORD DATABASE_NAME | pv -s 9999M > DATABASE_NAME.sql
Как из дампа базы данных вытащить дамп только одной таблицы
Взято тут
Допустим, нужны данные только таблицы name_table
$ sed -n -e '/DROP TABLE.*`name_table`/,/UNLOCK TABLES;/p' dump_all.sql > name_table.sql
Единственно, если будут проблемы с русским текстом, может понадобится шапка из дампа - все строки от начала до -- Table structure for table. Их надо вставить в начало файла table_dump.sql.