如何备份MySQL数据库中的单个表?

默认情况下, mysqldump获取整个数据库的备份。 我需要在MySQL中备份单个表。 可能吗? 我该如何恢复?

从.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)格式转储并恢复单个表

信贷: 约翰McGrath

倾倒

 mysqldump db_name table_name | gzip > table_name.sql.gz 

恢复

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

mysqldump可以带一个tbl_name参数,这样它只备份给定的表。

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

尝试

 for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase"); do mysqldump -u... -p.... NameDataBase $line > $line.sql ; done 
  • $ line cotent names tables;)

我们可以使用任何给定的条件,如下所示的任何特定表的MySQL转储

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

如果我们想在表上添加一个特定的条件,那么我们可以使用下面的命令

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

您可以轻松地使用MYSQLWorkbench tool ,单个或一组表在一个转储转储选定的表,然后导入它也如果你可以添加主机信息,如果你在本地运行它通过添加-h IP.ADDRESS.NUMBER之后-u用户名

 mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 

你可以使用这个代码:

这个例子需要sugarcrm数据库的备份并将输出转储到sugarcrm.sql

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

sugarcrm.sql将包含下拉表,create table和insert命令,用于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; -- 

你可以从命令行使用mysqldump

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

你也可以使用MySQL Workbench:

转到左侧>数据导出>select模式>select表格,然后单击导出

你可以使用下面的代码:

  1. 单表结构单独备份

 mysqldump -d <database name> <tablename> > <filename.sql> 
  1. 用于带有数据的单表结构

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

希望它会有所帮助。