Как сделать резервную копию одной таблицы в базе данных MySQL? - PullRequest
405 голосов
/ 13 июля 2011

По умолчанию mysqldump создает резервную копию всей базы данных.Мне нужно сделать резервную копию одной таблицы в MySQL.Является ли это возможным?Как мне его восстановить?

Ответы [ 8 ]

772 голосов
/ 13 июля 2011

Дамп и восстановление одной таблицы из .sql

Дамп

mysqldump db_name table_name > table_name.sql

Дамп из удаленной базы данных

mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql

Для дальнейшей справки:

http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html

Восстановление

mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql

или в одну строку

mysql -u username -p db_name < /path/to/table_name.sql


Создать и восстановить одну таблицу из сжатого (.sql.gz) формата

Кредит: Джон МакГрат

Дамп

mysqldump db_name table_name | gzip > table_name.sql.gz

Восстановление

gunzip < table_name.sql.gz | mysql -u username -p db_name

21 голосов
/ 13 июля 2011

mysqldump может принимать параметр tbl_name, чтобы он только создавал резервные копии указанных таблиц.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql
14 голосов
/ 16 сентября 2013

try

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • $ таблиц активных имен линий;)
11 голосов
/ 09 июня 2014

Мы можем получить дамп mysql для любой конкретной таблицы с любым заданным условием, как показано ниже

mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables

Если мы хотим добавить конкретное условие where в таблицу, тогда мы можем использовать следующую команду

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables
7 голосов
/ 31 мая 2013

Вы можете легко использовать дамп выбранных таблиц, используя MYSQLWorkbench tool, индивидуально или группу таблиц в одном дампе, а затем импортировать его следующим образом: также вы можете добавить информацию о хосте , если вы запускаете ее в своем локальном добавив -h IP.ADDRESS.NUMBER after-u username

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 
6 голосов
/ 03 августа 2015

Вы можете использовать этот код:

В этом примере создается резервная копия базы данных sugarcrm и дамп выводится в sugarcrm.sql

# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

sugarcrm.sql будет содержать таблицу удаления, создатькоманда table и insert для всех таблиц в базе данных sugarcrm.Ниже приведен частичный вывод sugarcrm.sql с информацией о дампе таблицы account_contacts:

-

- Структура таблицы для таблицы accounts_contacts

DROP TABLE IF EXISTS `accounts_contacts`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `accounts_contacts` (
`id` varchar(36) NOT NULL,
`contact_id` varchar(36) default NULL,
`account_id` varchar(36) default NULL,
`date_modified` datetime default NULL,
`deleted` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_account_contact` (`account_id`,`contact_id`),
KEY `idx_contid_del_accid` (`contact_id`,`deleted`,`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

--
4 голосов
/ 19 июня 2017

Вы можете использовать mysqldump из командной строки:

mysqldump -u username -p password dbname tablename > "path where you want to dump"

Вы также можете использовать MySQL Workbench:

Перейти влево> Экспорт данных>Выберите Схема> Выбрать таблицы и нажмите Экспорт

4 голосов
/ 05 ноября 2016

Вы можете использовать следующий код:

  1. Только для одной структуры таблиц Резервное копирование

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. Для структуры одной таблицы с данными

-

mysqldump <database name> <tablename> > <filename.sql>

Надеюсь, это поможет.

...