[英]How to take backup of a single table in a MySQL database using Java swing?
[英]How to take backup of a single table in a MySQL database?
默认情况下, mysqldump
会备份整个数据库。 我需要在 MySQL 中备份一个表。 可能吗? 我该如何恢复它?
倾倒
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
学分:约翰麦格拉思
倾倒
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
我们可以在任何给定条件下对任何特定表进行 mysql 转储,如下所示
mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables
如果我们想在表上添加特定的 where 条件,那么我们可以使用以下命令
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
您可以从命令行使用mysqldump
:
mysqldump -u username -p password dbname tablename > "path where you want to dump"
您还可以使用 MySQL 工作台:
Go 向左 > 数据导出 > Select 架构 > Select 表并单击导出
您可以使用以下代码:
这个例子备份了sugarcrm数据库并将output转储到sugarcrm.sql
# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql
# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
Sugarcrm.sql 将包含 Sugarcrm 数据库中所有表的删除表、创建表和插入命令。 下面是sugarcrm.sql的部分output,显示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 -u root database table
,或者如果使用密码mysqldump -u root -p pass database table
我遇到了这个问题,并想用我们完整的示例来扩展其他人的答案:
这将在它自己的文件中备份模式,然后在自己的文件中备份每个数据库表。
日期格式意味着您可以在硬盘空间允许的情况下尽可能频繁地运行它。
DATE=`date '+%Y-%m-%d-%H'`
BACKUP_DIR=backups/
DATABASE_NAME=database_name
mysqldump --column-statistics=0 --user=fake --password=secure --host=10.0.0.1 --routines --triggers --single-transaction --no-data --databases ${DATABASE_NAME} | gzip > ${BACKUP_DIR}${DATE}-${DATABASE_NAME}--schema.sql.gz
for table in $(mysql --user=fake --password=secure --host=10.0.0.1 -AN -e "SHOW TABLES FROM ${DATABASE_NAME};");
do
echo ""
echo ""
echo "mysqldump --column-statistics=0 --user=fake --password=secure --host=10.0.0.1 --routines --triggers --single-transaction --databases ${DATABASE_NAME} --tables ${table} | gzip > ${BACKUP_DIR}${DATE}-${DATABASE_NAME}-${table}.sql.gz"
mysqldump --column-statistics=0 --user=fake --password=secure --host=10.0.0.1 --routines --triggers --single-transaction --databases ${DATABASE_NAME} --tables ${table} | gzip > ${BACKUP_DIR}${DATE}-${DATABASE_NAME}-${table}.sql.gz
done
我们以 bash 脚本每小时运行一次,实际上有 HOUR 检查,只在白天备份一些表,然后在晚上备份所有表。
为了在驱动器上保留一些空间,脚本还运行它以删除早于 X 天的备份。
# HOW MANY DAYS SHOULD WE KEEP
DAYS_TO_KEEP=25
DAYSAGO=$(date --date="${DAYS_TO_KEEP} days ago" +"%Y-%m-%d-%H")
echo $DAYSAGO
rm -Rf ${BACKUP_DIR}${DAYSAGO}-*
echo "rm -Rf ${BACKUP_DIR}${DAYSAGO}-*"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.