美文网首页
mysqldump 根据timestamp 导数据不准确

mysqldump 根据timestamp 导数据不准确

作者: 青水山 | 来源:发表于2023-02-08 14:02 被阅读0次

    场景:导出5月1号的数据

    mysqldump -uroot -h 10.2.17.158 -p --where="up_time>='2019-05-01 00:00:00' and up_time<='2019-05-01 23:59:59'" db_account charge >charge.sql

    结果:数据有5月2号的数据

    解决方法:

    mysqldump -uroot -h 10.2.17.158 -p --where="up_time>='2019-05-01 00:00:00' and up_time<='2019-05-01 23:59:59'" --skip-tz-utc db_account charge >charge.sql

    原因:

    在导出时,首先会将时区time_zone设置为'+00:00',而time_zone这个值在数据库中默认是

    mysql> show variables like'%time_zone%';

    +| Variable_name | Value |

    | system_time_zone | CST |

    | time_zone | SYSTEM 

    |+--------------------------+------------+

    2rowsinset (0.00sec)

    系统默认是东八区

    date-R

    Thu, 25Aug201616:25:06+0800

    导出时,会先对数据库中的记录转换(减去8个小时)

    在source 导入时,又会根据东八区 对数据进行加8操作。 导致看到的数据不对,包含了5月2号的数据。

    注:在原库中统计,结果是没有问题的。

    参数:--skip-tz-utc,只会影响 timestamp 字段的导入导出,对 datetime 时间字段不会影响

    使用当前 mysql 服务器的时区进行导出

    相关文章

      网友评论

          本文标题:mysqldump 根据timestamp 导数据不准确

          本文链接:https://www.haomeiwen.com/subject/yryqkdtx.html