Mysql編碼不一致和時區相差14小時解決方法


一、Oracle數據庫是GBK編碼導入到UTF-8的mysql數據庫出現亂碼

 Oracle數據庫有一套自己的編碼方法,當客戶端和數據庫編碼不一致時會自動轉換編碼方式;客戶端獲取數據時Oracle會自動將GBK轉為UTF-8,因此,需要在Mysql的url上設置編碼為UTF-8保持和mysql的一直即可。

二、Oracle數據庫date類型數據導入到mysql后相差14小時

原因:Oracle數據庫查詢時區是+8:00,也即是東8區時間;而mysql驅動mysql-connector-java-6.0.4.jar中會自動獲取mysql數據庫設置的時區,然后根據mysql數據庫設置的時區進行日期轉化;經查詢發現mysql數據庫的時區是CST,也就是美國時間;因此,需要將mysql的時區設置為東8:00區即可。

   show variables like ‘%time_zone%’,發現system_time_zone項果然是CST。

  解決方法:

  修改一下mysql的時區設置即可。

 set  global time_zone='+800';

 flush privileges;

 然后,重新將oracle數據同步到mysql數據庫,日期時間一致了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM