【发布时间】:2011-10-04 16:54:39
【问题描述】:
默认情况下,mysqldump 会备份整个数据库。我需要在 MySQL 中备份一个表。可能吗?如何恢复?
【问题讨论】:
默认情况下,mysqldump 会备份整个数据库。我需要在 MySQL 中备份一个表。可能吗?如何恢复?
【问题讨论】:
mysqldump 可以带一个 tbl_name 参数,因此它只备份给定的表。
mysqldump -u -p yourdb yourtable > c:\backups\backup.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
信用:John McGrath
转储
mysqldump db_name table_name | gzip > table_name.sql.gz
恢复
gunzip < table_name.sql.gz | mysql -u username -p db_name
【讨论】:
mysqldump db_name table_name | gzip > table_name.sql.gz 恢复:gunzip < table_name.sql.gz | mysql -u username -p db_name
您可以轻松地使用MYSQLWorkbench tool 转储选定的表,单独或一组表在一个转储中然后按如下方式导入:如果您正在运行它,您也可以添加 主机信息本地通过添加 -h IP.ADDRESS.NUMBER after-u 用户名
mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql
【讨论】:
试试
for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do
mysqldump -u... -p.... NameDataBase $line > $line.sql ;
done
【讨论】:
我们可以使用任何给定条件对任何特定表进行 mysql 转储,如下所示
mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables
如果我们想在表上添加特定的 where 条件,那么我们可以使用以下命令
mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables
【讨论】:
您可以使用此代码:
这个例子备份了sugarcrm数据库并将输出转储到sugarcrm.sql
# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql
# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
sugarcrm.sql 将包含 Sugarcrm 数据库中所有表的删除表、创建表和插入命令。以下是sugarcrm.sql的部分输出,显示accounts_contacts表的dump信息:
--
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 -d <database name> <tablename> > <filename.sql>
-
mysqldump <database name> <tablename> > <filename.sql>
希望它会有所帮助。
【讨论】:
您可以在命令行中使用mysqldump:
mysqldump -u username -p password dbname tablename > "path where you want to dump"
您也可以使用 MySQL Workbench:
转到左侧 > 数据导出 > 选择架构 > 选择表并单击导出
【讨论】:
只需使用mysqldump -u root database table
或者如果使用密码mysqldump -u root -p pass database table
【讨论】: