两种升级方式:

in-place upgrade:原地升级法,利用已存在的datadir目录进行升级。

logical upgrade:逻辑升级法,利用mysqldump导出导入进行升级。

不过一般在生产环境中,是采用新建一个新从库来完成升级,即主库老版本,从库目标版本。这样在切换的时候只需要停下机就行了

1、软件包准备:

下载mysql5.7二进制包文件

tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/mysql5.7

chown -R mysql:mysql /usr/local/mysql5.7

2、停止mysql服务(仍采用5.6版本的程序停止服务)

mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"  --必须设置该参数。

mysqladmin --defaults-file=/etc/my.cnf shutdown

3、备份数据目录

copy datadir old_datadir

4、备份并修改配置文件

备份: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

5、手工采用mysqld方式拉起数据库(新版本的mysqld:/usr/local/mysql5.7/bin/mysqld)

/usr/local/mysql5.7/bin/mysqld --defaults-file=/etc/my.cnf start

6、升级数字字典

/usr/local/mysql5.7/bin/mysql_upgrade -uroot -pxxxx

无报错即升级成功。

7、重启数据库

/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 &

8、确认升级是否成功(新增了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)