FAQ MYSQL: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Как сделать дамп базы данных со всеми процедурами и триггерами)
(Как из дампа базы данных вытащить дамп только одной страницы)
 
(не показана 1 промежуточная версия этого же участника)
Строка 11: Строка 11:
 
===Сoздание дампа===
 
===Сoздание дампа===
 
<pre>mysqldump -uUSERNAME -pPASSWORD DATABASE_NAME | pv -s 9999M > DATABASE_NAME.sql </pre>
 
<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.