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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 升級 Homestead box 遇到的 502 問題
- 升級 node18 遇到的問題總結
- Angular CLI 升級 6.0 之後遇到的問題Angular
- SpringBoot 2.1.0 升級到 2.5.4 遇到的問題彙總Spring Boot
- 升級Xcode 10遇到的問題做個記錄XCode
- Swift3.0專案升級到4.2遇到問題Swift
- 直播原始碼網站,各式各樣的淡入淡出動畫原始碼網站動畫
- Laravel 5.5 升級到 5.5.42 後遇到的 Cookie 序列化問題LaravelCookie
- 升級 Node.js 版本遇到的 co 和 pm2 問題解析Node.js
- 從 PHP5.2 升級到 PHP7.1 遇到的函式引數問題PHP函式
- VisualStudio遇到的一些初級問題
- iOS12降級遇到的各種問題彙總解答 iOS12降級失敗怎麼辦iOS
- ReactNative升級0.56.0注意問題React
- Nuxt升級2.0.0時出現的問題UX
- 各種二埠濾波器網路模擬遇到的問題
- 更新macOS Monterey後遇到的各種Bug問題及解決方法Mac
- XCode 10 升級問題總結XCode
- JackJson遇到的問題JSON
- mysql 遇到的問題MySql
- WangEditor遇到的問題
- Homestead 遇到的問題
- sudo 遇到的問題
- linux遇到的問題Linux
- Vagrant 遇到的問題
- 記一次版本升級遇到的坑
- .Net Core 2.1 升級3.1 問題整理
- 怎樣解決更新MacOS big sur時遇到的那些問題!Mac
- 本週遇到的問題
- 部署Jenkins + 遇到的問題Jenkins
- fastadmin自己遇到的問題AST
- 使用git遇到的問題Git
- SpringBoot遇到的某些問題Spring Boot
- 我遇到的小白問題
- React Native遇到的問題React Native
- 成立公司了,遇到了這樣一些問題!
- 虛擬環境的jupter notebook 版本升級問題
- 遇到奇葩問題
- Vue-cli升級webpack4以及各種loader升級配置VueWeb