2017-03-17 41 views
1

我只是用出口MySQL数据库从我们的旧服务器:MySQL数据库后更改了日期来获得进口

PhpMyAdmin->Import->File to Import 

mysqldump -u [uname] -p[pass] db_name > db_backup.sql 

然后我使用phpMyAdmin导入了数据库文件db_backup.sql到我们的新服务器

新数据库表中的日期不同。为什么他们改变了,我该如何阻止?

这里是旧的数据库日期: enter image description here

,这里是新数据库的日期,他们为什么要改变? enter image description here

+0

服务器在不同的时区,6个小时的间隔,似乎。 – Barmar

+0

SET TIME_ZONE ='+00:00'; – vanloc

+0

@vanloc你的意思是在我的新服务器phpMyAdmin中执行此操作吗? –

回答

1

解决方案1:

添加导出脚本的--skip-tz-utc选项。

解决方案2:

我想导入数据时,不能导出你应该设置时区为UTC。

--tz-utc选项的文档:

“的mysqldump将其连接的时区为UTC,并增加了SET TIME_ZONE = '+ 00:00' 转储文件”。所以,转储采用UTC。 但由于您使用制表转储,“SET TIME_ZONE ='+ 00:00”指令 未执行,所以您必须手动设置连接 上的时区。

命令:set [email protected]_time_zone

0

我不是100%确定,但也许你有不同的时间设置在每个服务器上。我看到只有几天和几小时有所变化,所以它看起来像18个小时。一探究竟。

修改服务器上的全局的time_zone变量: SET GLOBAL time_zone = 'America/Los_Angeles';

更新后的事实数据,应用MySQL的CONVERT_TZ()函数:

UPDATE my_table 
SET my_column = CONVERT_TZ(
        my_column, 
        'America/Los_Angeles', 
        'Australia/Adelaide' 
        ); 
+0

有没有办法让phpMyAdmin忽略它? –

+0

我编辑了答案。 –