问题描述:在数据库插入数据过程中发现CURRENT_TIMESTAMP插入的当前不是北京时间,date命令查看Linux系统时间也不是北京时间,下面是时间同步的解决方法

Linux时间不同步解决

查看系统当前时间:

[root@manage01 ~]# date -R
Mon, 03 Dec 2018 21:15:44 -0500

因为上面查询出来的结果可以看出时区不一致,所以 ​​同步时间方法​​ 参考这些方法同步时间都不行。(中国的东八区编号是 +0800)

下面是正确的方法:

tzselect设置时区命令,根据选项选到中国的北京时间:

[root@manage01 ~]# tzselect 
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

China
Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Local time is now: Tue Dec 4 10:16:18 CST 2018.
Universal Time is now: Tue Dec 4 02:16:18 UTC 2018.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai

执行如下命令:

vi .bash_profile

在末尾加入这两行:

TZ='Asia/Shanghai'
export TZ

然后运行命令刷新配置:

source .bash_profile

再次运行date命令发现时区已经成功修改:

[root@manage01 ~]# date -R
Tue, 04 Dec 2018 10:54:27 +0800

mysql时间不同步解决

linux时区重新设置后,发现mysql插入的数据还是原来时区的时间,下面是重新设置mysql时区的方法:

进入mysql控制台运行如下指令查看mysql时间。

select CURTIME();

查询后发现和date命令查询出来的时间不一样,下面开始修改:

运行临时解决命令:

SET time_zone = '+8:00';

刷新配置:

flush privileges;

修改配置文件使得下次重启mysql服务之后永久生效

vi /etc/my.cnf

添加如下配置:

[mysqld]
default_time_zone = '+8:00'