MySQL8升級遇到的各式各樣問題
自己原文公眾號: https://mp.weixin.qq.com/s/j2b9yO_9r5dYvXogBfqEwQ
MySQL8已經出來2年多了,可以用了。尤其是大家在5.6和5.7上加欄位加不上的,強烈推薦上MySQL8吧。
最近有人問我升級需要注意什麼?官網能查到的就是說要換JDBC的包。然後官網給出了一個和5.7不一樣的語法:
mysql5.7group by 預設還有排序功能, 8.0 預設只分組不排序,需要加 order by 才排序。舉例在 5.7 中
select dept_no,count(*) from t_group group by dept_no; 這樣的是按照 dept_no 預設升序排序。在 8.0 中如果也需要實現同樣的效果需要 select dept_no,count(*) from t_group group by dept_no order by dept_no ; 這個差異點對開發影響不大,因為大多數開發人員都習慣於 8.0 的這種寫法,甚至沒有考慮過 5.7 的情況。
其他就沒有其他了。(當然了有些引數和資料字典的名字這種和應用開發沒什麼關係這裡就不說了)
我覺得可能是官方(老美)覺得有些不該是問題的。但是我從不同渠道看到了其實還是有其他問題的。
問題1:有些場景我們中國的開發人員喜歡全部用字串(可能是java為了偷懶不 想轉換了)所以時間、數值全是字串。(哎,oracle mysql java都是甲骨文的,這三個團隊的尤其是java團隊的就不考慮一下這個開發語言怎麼來適配一下資料庫嗎)結果自然出乎意料,sum(string)的時候整數會出現小數點。比如原來是9現在顯示9.0. 5.7沒有這種情況8有。老美可能覺得資料結構是開發的基礎,都應該掌握的。但是可能不符合中國國情。就像老外覺得SQL都應該用到索引,但是在我國全表掃描是常態。
問題2:這樣的設定我覺得不能說是有問題。這個意思是資料庫的時區跟蹤作業系統走。
那麼作業系統時區是什麼?
看上去也沒有問題。
不過測試環境有人反饋說時間差了13個小時。不解,嚴重不解。為什麼?為了弄清楚這個問題只能去重現一下。
在MySQL建立一個表w(我意思是why的意思)就兩列,id和time
編寫(又抄又改的)一段主要是為了說明問題。
可以看到紅框,我用的是8的jdbc,區別在於CJ兩個字元。之前的是不帶這個的。
綠色是我寫的SQL(如果是我寫程式碼我絕對會這樣)
藍色是站在開發角度寫的(實在不明白開發為什麼要這樣做)也許這就是物件導向和麵向資料庫不可調和的。
黃色是最終結果,可以看出是差了13個小時。
對於這個問題,我的角度結論是作業系統沒有錯,資料庫也沒有錯。如果用資料庫自帶的函式,也是透過JDBC寫資料庫也沒問題。問題在於藍色的寫法需要有前提條件。我後來也問了其他用過8版本JDBC的開發。他們說他們是這樣定義連線字串的
jdbc:mysql://IP:3306/XXX?useUnicode=true&characterEncoding=UTF-8& serverTimezone=PRC&allowMultiQueries=true&autoReconnect=true&useSSL=false
加了紅色部分就一點問題也沒有了。
我在此依然是建議不管什麼資料庫你就用她自帶的時間函式,這樣少很多麻煩。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847142/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Angular CLI 升級 6.0 之後遇到的問題Angular
- 升級 node18 遇到的問題總結
- 資料升級到5.1所遇到的問題
- 用Alt碼打出Pi以及各式各樣的符號符號
- 升級Xcode 10遇到的問題做個記錄XCode
- Oracle RAC 10.2.0.5升級到11.2.0.4遇到的問題Oracle
- 直播原始碼網站,各式各樣的淡入淡出動畫原始碼網站動畫
- Swift3.0專案升級到4.2遇到問題Swift
- SpringBoot 2.1.0 升級到 2.5.4 遇到的問題彙總Spring Boot
- 升級到MySQL 5.0.17一定遇到的四個問題MySql
- Discuz論壇2.5 升級到PHP MySQL新版遇到的問題PHPMySql
- Laravel 5.5 升級到 5.5.42 後遇到的 Cookie 序列化問題LaravelCookie
- Rails 3 升級 Rails 4 中遇到的問題及解決方法AI
- oracle 9.2.0.4升級到9.2.0.8時exp匯出時遇到的問題Oracle
- hadoop啟動遇到的各種問題Hadoop
- 升級 Node.js 版本遇到的 co 和 pm2 問題解析Node.js
- Oracle Database 11.1.0.7 for Windows升級到11.2.0.3.4 for Linux遇到的問題OracleDatabaseWindowsLinux
- 各式各樣的極品程式設計師 你屬於哪一種程式設計師
- 面試可能會遇到的各種問題講解面試
- 資料庫升級到mysql5.6遇到的資料表ENGINE問題資料庫MySql
- 32位升級到64位之後遷移oracle db遇到的問題Oracle
- 從 PHP5.2 升級到 PHP7.1 遇到的函式引數問題PHP函式
- Cocoapods 版本升級遇到的坑
- JDK升級問題小結JDK
- iOS12降級遇到的各種問題彙總解答 iOS12降級失敗怎麼辦iOS
- ios升級為5後,程式編譯時遇到的關於libz 1.2.3.dylib類包的各種問題解決辦法iOS編譯
- Nuxt升級2.0.0時出現的問題UX
- ReactNative升級0.56.0注意問題React
- 更新macOS Monterey後遇到的各種Bug問題及解決方法Mac
- 各種二埠濾波器網路模擬遇到的問題
- 工作遇到的問題
- mysql 遇到的問題MySql
- 記一次版本升級遇到的坑
- XCode 10 升級問題總結XCode
- 實施vertex compression所遇到的各種問題和解決辦法
- mysql8 無法連線navicat問題MySql
- XP升級至Windows7的問題彙總Windows
- linux遇到的問題Linux