MySQL 5.6升級到MySQL 5.7都有什么注意事項?


MySQL 5.6升級到MySQL 5.7都有什么注意事項?


一、升級方式
MySQL升級的方式一般來說有兩種
1、通過inplace方式原地升級,升級系統表
2、通過新建實例,高版本作為低版本的從庫進行滾動升級

MySQL5.7版本做了非常多的改變,升級5.6到5.7時需要考慮兼容性,避免升級到5.7之后因為種種參數設置不正確導致業務受影響,建議首先逐一查看release note


二、需要注意的參數及問題:
1、sql_mode:MySQL 5.7采用嚴格模式,例如ONLY_FULL_GROUP_BY等
2、innodb_status_output_locks:MySQL 5.7支持將死鎖信息打印到error log(其實這個參數MySQL 5.6就已支持)
3、innodb_page_cleaners:MySQL 5.7將臟頁刷新線程從master線程獨立出來了,對應參數為innodb_page_cleaners
4、innodb_strict_mode:控制CREATE TABLE, ALTER TABLE, CREATE INDEX, 和 OPTIMIZE TABLE的語法問題
5、show_compatibility_56=ON:控制show變量及狀態信息輸出,如果未開啟show status 命令無法獲取Slave_xxx 的狀態
6、log_timestamps:控制error log/slow_log/genera log日志的顯示時間,該參數可以設置為:UTC 和 SYSTEM,但是默認使用 UTC
7、disable_partition_engine_check:在表多的情況下可能導致啟動非常慢
8、range_optimizer_max_mem_size:范圍查詢優化參數,這個參數限制范圍查詢優化使用的內存,默認8M
9、MySQL 5.7新增優化器選項derived_merge=on,可能導致SQL全表掃描,而在MySQL 5.6下可能表現為auto key
10、innodb_undo_directory && innodb_undo_logs:MySQL 5.7支持將undo從ibdata1獨立出來(只支持實例初始化,不支持在線變更)
11、主從復制問題:MySQL5.7到小於5.6.22的復制存在bug(bug 74683)
12、SQL兼容性問題:SQL在MySQL 5.7和MySQL 5.6環境下結果可能不一致,因此建議獲取線上SQL,在同樣數據的環境下,在兩個實例運行獲取到的結果計算hash,比較hash值做兼容性判斷


三、友情提醒
1、升級前一定要做好備份!!!
2、升級正式環境前提前在測試環境進行仔細測試,確認無誤以后再升級正式環境。
3、做好相應的回退方案。

 


免責聲明!

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



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