互联网服务MySQLmysql 备份

mysql导入数据覆盖原数据?

大佬们,比如把mysql中一个表按月份导出,再导入的时候先导入一月份的数据,再导入二月份的数据,二月就会把一月的覆盖,怎么导入才能只增加不覆盖?显示全部

大佬们,比如把mysql中一个表按月份导出,再导入的时候先导入一月份的数据,再导入二月份的数据,二月就会把一月的覆盖,怎么导入才能只增加不覆盖?

收起
参与14

查看其它 1 个回答煎山药的回答

煎山药煎山药系统运维工程师北京千眼数合

我来回答吧,现在找到方法了。
1.首先导出时可以只导出创建表结构的语句,注意选项-d,表示只导出表结构
mysqldump -uroot -B 库名 --tables 表名 -d --master-data=2 --force -S /usr/local/mariadb_3306/mariadb.sock >/data/table-structure
2.然后再按月份导出数据文件,注意选项-t,只导出表数据
mysqldump -uroot -B 库名 --tables 表名 -t --master-data=2 --force -S /usr/local/mariadb_3306/mariadb.sock --where="createTime<'2016-11-01 00:00:00'" >2016-11
3.然后先导入表结构语句
mysql -uroot -B 库名 --force -S /usr/local/mariadb_3309/mariadb.sock </data/table-structure
4.再依次导入数据
mysql -uroot -B 库名 --force -S /usr/local/mariadb_3309/mariadb.sock <2016-11
5.直接使用mysqldump导出时,默认导出了数据和表结构,导入时会判断表是否存在,存在则删除,新建一个,就会把原来已导入的数据一起删除,出现了覆盖的效果。

互联网服务 · 2017-12-07
浏览6780

回答者

煎山药
系统运维工程师北京千眼数合

煎山药 最近回答过的问题

回答状态

  • 发布时间:2017-12-07
  • 关注会员:2 人
  • 回答浏览:6780
  • X社区推广