MySQL版本升級

MySQL版本升級

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

Ⅰ、總體流程

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

Ⅱ、上手

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)rest

[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
更新完記得重啓一哈code

[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這種 ,大版本之間是不能夠的server

相關文章
相關標籤/搜索