MySQL使用過程當中常由於某些bug或者新特性需求進行版本升級,生產環境通常升級有兩種方法,原地升級和邏輯升級,邏輯升級就是比較純粹的導入導出,耗時較長,最妥當。原地升級則是用新版本拉起舊版本數據後更新元數據,耗時少,可能很小几率會有問題,這裏咱們走一遍原地升級的流程。mysql
停庫 ---> 備份 ---> 拉起 ---> 更新sql
[root@master mysql]# mysql -e "\s" |grep 'Server version' |awk '{print $3}' 5.6.39
注意停庫的時候慢一點,最大程度保證數據完整性(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
[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!
這裏用了-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!
[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