Как сделать резервную копию одной таблицы в базе данных MySQL?

361

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

Теги:
backup
restore

8 ответов

735
Лучший ответ

Дамп и восстановление отдельной таблицы из .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

  • 12
    SQL обычно хорошо сжимается - вышеприведенную команду можно передать через gzip, и полученный файл будет намного меньше: mysqldump db_name table_name | gzip > table_name.sql.gz для восстановления: gunzip < table_name.sql.gz | mysql -u username -p db_name
19

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

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql
13

попробовать

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • $строковые таблицы имен котенков;)
  • 1
    Это удобно для выгрузки базы данных в отдельные запросы таблиц. Могу ли я узнать, что именно делают опции?
  • 0
    Здравствуйте, -AN (- no-auto-rehash, -A | --skip-column-names, -N Не записывать имена столбцов в результатах.) -E (- выполнить = оператор, -e оператор | Выполнить и выход. По умолчанию формат вывода такой же, как и в --batch.) fuente: dev.mysql.com/doc/refman/5.6/en/mysql-command-options.html
10

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

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

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

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables
6

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

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 
  • 0
    К сожалению, в Mysql Workbench есть некоторые проблемы, которые могут привести к экспорту неверных данных, которые бесполезны ...
4

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

В этом примере выполняется резервное копирование базы данных sugarcrm и выгружает вывод в файл sugarcrm.sql

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

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

В файле sugarcrm.sql будет указана таблица drop, создайте таблицу и вставьте команду для всех таблиц в базе данных sugarcrm. Ниже приводится частичный вывод sugarcrm.sql, показывающий информацию дампа таблицы accounts_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;

--
2

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

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

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

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

2

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

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

-

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

-

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню