mysqldump导出数据库,每个表导出指定条数的数据

有一个项目,需要使用线上数据库的数据,不想让第三方看到完整的数据,要求每个表之存放指定条数的数据,这个可以使用下面命令满足要求! mysqldump -u root -pwaglo127net --default-charac...


有一个项目,需要使用线上数据库的数据,不想让第三方看到完整的数据,要求每个表之存放指定条数的数据,这个可以使用下面命令满足要求!

mysqldump -u root -pXXXX --default-character-set=utf8  web20 --where '1=1 limit 1000'



mysqldump where条件的解析为:Dump only rows selected by the given WHERE condition. Quotes around the condition are mandatory if it contains spaces or other characters that are special to your command interpreter.



解决办法

#使用--skip-tz-utc,不使用mysqldump默认的中时区。
mysqldump --default-character-set=utf8 -q --master-data=2 --single-transaction --databases test --tables t1 --where "time='2018-12-10 22:16:08'" -uroot -p123456 --skip-tz-utc>beifen.sql
#数据完全正确,文件头部无时区转换,所以数据恢复时正常。
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (11,'2018-12-10 22:16:08');
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;


3总结

在使用mysqldump备份含有timestamp类型列的表时,需要指定--skip-tz-utc选项,否则可能会导致备份数据异常。(推荐使用datetime,与时区无关且存储范围更大,可以避免一些问题。)

  • 发表于 2018-02-28 21:23
  • 阅读 ( 75 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
石天
石天

437 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章