MySQL版本升級


MySQL版本升級

MySQL使用過程中常因為某些bug或者新特性需求進行版本升級,生產環境一般升級有兩種方法,原地升級和邏輯升級,邏輯升級就是比較純粹的導入導出,耗時較長,最穩當。原地升級則是用新版本拉起舊版本數據后更新元數據,耗時少,可能很小概率會有問題,這里我們走一遍原地升級的流程。

Ⅰ、整體流程

停庫 ---> 備份 ---> 拉起 ---> 更新

Ⅱ、上手

2.1 查看當前MySQL版本

[root@master mysql]# mysql -e "\s" |grep 'Server version' |awk '{print $3}'
5.6.39

2.2 停庫&&備份

注意停庫的時候慢一點,最大程度保證數據完整性(full purge and a change buffer merge before shutting down)

[root@master mysql]# mysql -e "SET GLOBAL innodb_fast_shutdown = 0;"
[root@master mysql]# /etc/init.d/mysql.server stop
Shutting down MySQL.. SUCCESS! 
[root@master mysql]# cp -r /data/mysql /data/mysql_bak

2.3 新版本啟動

[root@master local]# unlink mysql
[root@master local]# ln -s mysql-5.7.23-el7-x86_64/ mysql
[root@master local]# /etc/init.d/mysql.server start
Starting MySQL.. SUCCESS!

2.4 更新元數據

這里用了-s參數(--upgrade-system-tables),表示只更新系統表(元數據表),不更新數據,數據方面高版本是兼容低版本的,具體用法參考mysql_upgrade --help
更新完記得重啟一哈

[root@master local]# mysql_upgrade -s
The --upgrade-system-tables option was used, databases won't be touched.
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Upgrading the sys schema.
Upgrade process completed successfully.
Checking if update is needed.
[root@master ~]# /etc/init.d/mysql.server restart
Shutting down MySQL.... SUCCESS! 
Starting MySQL. SUCCESS! 

2.5 沒關系,咱們看結果

[root@master local]# mysql -e "\s" |grep 'Server version' |awk '{print $3}'
5.7.23

Ⅲ、插兩句

①可以跨大版本升級,但必須先備份,必須
②互聯網公司升級方案:主從--->升級從--->主從互換--->升級原主
③降級也是用這個命令,mysql_upgrade -s,一般不降級,了解一下,小版本之間可以降級 5.7.2到5.7.1這種 ,大版本之間是不可以的


免責聲明!

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



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