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:如果涉及到跨时区数据迁移的话就要当心了