場景:導(dǎo)出5月1號的數(shù)據(jù)
mysqldump -uroot -h 10.2.17.158 -p --where="up_time>='2019-05-01 00:00:00' and up_time<='2019-05-01 23:59:59'" db_account charge >charge.sql
結(jié)果:數(shù)據(jù)有5月2號的數(shù)據(jù)
解決方法:
mysqldump -uroot -h 10.2.17.158 -p --where="up_time>='2019-05-01 00:00:00' and up_time<='2019-05-01 23:59:59'"?--skip-tz-utc?db_account charge >charge.sql
原因:
在導(dǎo)出時,首先會將時區(qū)time_zone設(shè)置為'+00:00'卿捎,而time_zone這個值在數(shù)據(jù)庫中默認(rèn)是
mysql> show variables like'%time_zone%';
+| Variable_name | Value |
| system_time_zone | CST |
| time_zone | SYSTEM?
|+--------------------------+------------+
2rowsinset (0.00sec)
系統(tǒng)默認(rèn)是東八區(qū)
date-R
Thu, 25Aug201616:25:06+0800
導(dǎo)出時午阵,會先對數(shù)據(jù)庫中的記錄轉(zhuǎn)換(減去8個小時)
在source 導(dǎo)入時,又會根據(jù)東八區(qū) 對數(shù)據(jù)進行加8操作植袍。 導(dǎo)致看到的數(shù)據(jù)不對,包含了5月2號的數(shù)據(jù)。
注:在原庫中統(tǒng)計于个,結(jié)果是沒有問題的览濒。
參數(shù):--skip-tz-utc拖云,只會影響 timestamp 字段的導(dǎo)入導(dǎo)出,對 datetime 時間字段不會影響
使用當(dāng)前 mysql 服務(wù)器的時區(qū)進行導(dǎo)出