兩種升級方式:mysql
in-place upgrade:原地升級法,利用已存在的datadir目錄進行升級。linux
logical upgrade:邏輯升級法,利用mysqldump導出導入進行升級。sql
不過通常在生產環境中,是採用新建一個新從庫來完成升級,即主庫老版本,從庫目標版本。這樣在切換的時候只須要停下機就好了數據庫
一、軟件包準備:app
下載mysql5.7二進制包文件ide
tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/mysql5.7spa
chown -R mysql:mysql /usr/local/mysql5.7插件
二、中止mysql服務(仍採用5.6版本的程序中止服務)orm
mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0" --必須設置該參數。it
mysqladmin --defaults-file=/etc/my.cnf shutdown
三、備份數據目錄
copy datadir old_datadir
四、備份並修改配置文件
備份:copy /etc/my.cnf /etc/my.cnf.bak
basedir的目錄修改爲:/usr/local/mysql5.7
禁用gtid: gtid_mode=off enforce_gtid_consistency=on
若是5.6版本中採用的第三方的audit(如percona的audit插件),須要註釋掉my.cnf中相關的audit參數。
##********** Audit *************
#plugin-load=audit_log.so
#audit_log_buffer_size=4194304
#audit_log_file=/data/mysql/mysql3306/auditlog/audit.log
#audit_log_format=new
#audit_log_policy=all
#audit_log_rotate_on_size=1G
#audit_log_rotations=10
#audit_log_strategy=ASYNCHRONOUS
五、手工採用mysqld方式拉起數據庫(新版本的mysqld:/usr/local/mysql5.7/bin/mysqld)
/usr/local/mysql5.7/bin/mysqld --defaults-file=/etc/my.cnf start
六、升級數字字典
/usr/local/mysql5.7/bin/mysql_upgrade -uroot -pxxxx
無報錯即升級成功。
七、重啓數據庫
/usr/local/mysql5.7/bin/mysqladmin --defaults-file=/etc/my.cnf -uroot -pxxxx shutdown
/usr/local/mysql5.7/bin/mysqld --defaults-file=/etc/my.cnf &
八、確認升級是否成功(新增了sys庫)
root@localhost:mysql3306.sock 10:48: [(none)]>select version();
+------------+
| version() |
+------------+
| 5.7.16-log |
+------------+
1 row in set (0.00 sec)
root@localhost:mysql3306.sock 10:49: [(none)]>show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| mysql |
| performance_schema |
| plum_approve |
| plum_call_center |
| plum_credit |
| plum_csm |
| plum_device_content |
| plum_employee |
| plum_employee_new |
| plum_finance |
| plum_message_center |
| plum_pay |
| plum_userproduct |
| sys |
| test |
+---------------------+
16 rows in set (0.00 sec)