我只是用出口MySQL数据库从我们的旧服务器:MySQL数据库后更改了日期来获得进口
PhpMyAdmin->Import->File to Import
:
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
然后我使用phpMyAdmin导入了数据库文件db_backup.sql
到我们的新服务器
新数据库表中的日期不同。为什么他们改变了,我该如何阻止?
我只是用出口MySQL数据库从我们的旧服务器:MySQL数据库后更改了日期来获得进口
PhpMyAdmin->Import->File to Import
:
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
然后我使用phpMyAdmin导入了数据库文件db_backup.sql
到我们的新服务器
新数据库表中的日期不同。为什么他们改变了,我该如何阻止?
解决方案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
我不是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'
);
有没有办法让phpMyAdmin忽略它? –
我编辑了答案。 –
服务器在不同的时区,6个小时的间隔,似乎。 – Barmar
SET TIME_ZONE ='+00:00'; – vanloc
@vanloc你的意思是在我的新服务器phpMyAdmin中执行此操作吗? –