Mybatisによって挿入された記録時間は、データベースに保存した後の時間と一致していません

Mybatisによって挿入された記録時間は、データベースに保存した後の時間と一致していません

問題:

Mybatisによって挿入された記録時間は、データベースに保存した後の時間と一致していません。
2016-12-27 12:15:24 in Java

データベースに保存した後は、2016-12-2622:15:24です。

分析:

2つの時間の差は14時間であり、これは明らかにタイムゾーンの問題です。

mysqlの現在の時刻、現在のタイムゾーンを表示します。

> select curtime();#またはselect now()は
+ ----------- +
| curtime()|
+ ----------- +
| 15:18: 10 |
+ ----------- +

> "%time_zone%"のような変数を表示します;
+ ------------------ + ----- --- +
| Variable_name |値|
+ ------------------ + -------- +
| system_time_zone | CST |
| time_zone | SYSTEM |
+- ----------------- + -------- +
2行セット(0.00秒)
#time_zoneは、mysqlがシステムタイムゾーンを使用することを示し、system_time_zoneはそのシステムを示しますCSTタイムゾーンを使用

 

解決:

方法1:mysqlコマンドラインモードを使用して動的に変更する

> set global time_zone = '+ 8:00'; ## mysqlグローバルタイムゾーンを北京時間、つまり、私たちがいる東8地区に
変更します> set time_zone = '+ 8:00'; ##変更します現在のセッションタイムゾーン
>フラッシュ特権;#すぐに有効

方法2:my.cnf構成ファイルを変更してタイムゾーンを変更する

#vim /etc/my.cnf ## default-time_zone = '+ 8:00'を[mysqld]領域に追加#/ etc / init.d / mysqld 
restart ## mysqlを再起動して、新しいタイムゾーンを有効にします

方法3:jdbcUrlを設定し、serverTimezone = UTCパラメーターを追加します

jdbcUrl = jdbc \:mysql \:// localhost \:3306 / wos_refer?useUnicode \ = true&characterEncoding \ = UTF-8&serverTimezone = UTC

おすすめ

転載: blog.csdn.net/qq_30264689/article/details/94742358