您的位置:首页 > 数据库 > MySQL

mysqldump 根据时间字段导出数据的问题

2016-11-23 21:59 441 查看
mysqldump 有很多有用的参数,根据条件导出数据的选项 -w --where 用的情况并不多。如果不注意还是容易掉进坑里的

mysql server默认的时区跟OS服务器保证一致:

mysql> show variables like '%zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | SYSTEM |

date -R
Wed, 23 Nov 2016 21:31:32 +0800

比如在中国大陆都统一使用的东八区.不需要在意时区问题,但是如果需要根据时间导数据的话就要注意了:

--tz-utc SET TIME_ZONE='+00:00' at top of dump to allow dumping of
TIMESTAMP data when a server has data in different time
zones or data is being moved between servers with
different time zones.
(Defaults to on; use --skip-tz-utc to disable.)

不在意这个参数的话,mysqldump -w "raw_add_time>='XXXX-XX-XX '" 直接导出来的数据就不准。根据mysql 客户端能查到的数据mysqldump 时可能就dump不到,因为时区少了8个小时!!!

靠谱的做法是mysqldump 时加上--skip-tz-utc 禁用该时区选项:mysqldump -w "raw_add_time>='XXXX-XX-XX '" --skip-tz-utc 这样 mysql 能查到的记录mysqldump也能导出来。

Ps:如果涉及到跨时区数据迁移的话就要当心了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐