两种升级方式: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)