技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> [MySQL FAQ]系列 -- 如何跨时区迁移数据

[MySQL FAQ]系列 -- 如何跨时区迁移数据

浏览:955次  出处信息

问: 如果数据表中有时间字段,现在要迁移到其他时区的服务器上,该如何处理呢?
答:在高版本的mysqldump中,新增了一个选项:--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.

看明白了吧。
简言之,就是导出时增加一个说明,把当地时间都转换成0时区的时间,然后再导入,就能确保跨时区迁移数据了,来看下例子:

mysql> select * from t1;
+----+---------------------+
| id | cur_time            |
+----+---------------------+
|  1 | 2010-03-14 08:58:18 |
+----+---------------------+

现在导出数据:

mysqldump --tz-utc=1 -t test t1 > t1.sql
#查看内容
cat t1.sql
/*!40103 SET TIME_ZONE='+00:00' */;
....
INSERT INTO `t1` VALUES (1,'2010-03-14 00:58:18');

可以看到,增加了设定时区的标志。

mysqldump --tz-utc=0 -t test t1 > t1_1.sql
#查看内容
cat t1_1.sql
INSERT INTO `t1` VALUES (1,'2010-03-14 08:58:18');

还有更多mysqldump的选项需要去挖掘 :)

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1