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

Man*_*nde 417 mysql backup restore

默认情况下,mysqldump备份整个数据库.我需要在MySQL中备份一个表.可能吗?我该如何恢复它?

Oza*_*ray 796

从.sql转储和还原单个表

倾倒

mysqldump db_name table_name > table_name.sql
Run Code Online (Sandbox Code Playgroud)

从远程数据库转储

mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql
Run Code Online (Sandbox Code Playgroud)

供进一步参考:

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
Run Code Online (Sandbox Code Playgroud)

或者在一行中

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


从压缩(.sql.gz)格式转储和恢复单个表

图片来源:John McGrath

倾倒

mysqldump db_name table_name | gzip > table_name.sql.gz
Run Code Online (Sandbox Code Playgroud)

恢复

gunzip < table_name.sql.gz | mysql -u username -p db_name
Run Code Online (Sandbox Code Playgroud)

  • SQL通常压缩得很好 - 你可以通过gzip管道上面的命令,结果文件会小得多:`mysqldump db_name table_name | gzip> table_name.sql.gz`恢复:`gunzip <table_name.sql.gz | mysql -u username -p db_name` (13认同)

Jac*_*cob 22

mysqldump可以使用tbl_name参数,以便它只备份给定的表.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql
Run Code Online (Sandbox Code Playgroud)


Rob*_*mez 15

尝试

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
Run Code Online (Sandbox Code Playgroud)
  • $ line强效名称表;)


min*_*s23 12

我们可以使用任何给定条件对任何特定表进行mysql转储,如下所示

mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables
Run Code Online (Sandbox Code Playgroud)

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

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables
Run Code Online (Sandbox Code Playgroud)


dan*_*lad 8

您可以轻松地MYSQLWorkbench tool在一个转储中使用单独或一组表转储所选表,然后按如下方式导入:如果您在本地运行它,则可以通过在-u之后添加-h IP.ADDRESS.NUMBER 来添加主机信息用户名

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以使用此代码:

此示例获取sugarcrm数据库的备份并将输出转储到sugarcrm.sql

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

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
Run Code Online (Sandbox Code Playgroud)

sugarcrm.sql将包含sugarcrm数据库中所有表的drop table,create table和insert命令.以下是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;

--
Run Code Online (Sandbox Code Playgroud)


Pho*_*nix 5

您可以使用以下代码:

  1. 对于单表结构单独备份

——

mysqldump -d <database name> <tablename> > <filename.sql>
Run Code Online (Sandbox Code Playgroud)
  1. 对于带有数据的单表结构

——

mysqldump <database name> <tablename> > <filename.sql>
Run Code Online (Sandbox Code Playgroud)

希望它会有所帮助。


小智 5

您可以mysqldump从命令行使用:

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

您还可以使用 MySQL 工作台:

转到左侧 > 数据导出 > 选择架构 > 选择表,然后单击导出