一、前言
线上MySQL环境是主从集群,升级先从slave开始,升级完每个slave,再升级Master。
升级前要先停止主从同步,并做好数据备份和回滚准备,以避免升级失败可及时恢复挽回。
二、准备工作
2.1、上传升级文件
上传mysql-5.7.17-linux-glibc2.5-x86_64.tar 升级文件到DB1,DB2,DB3的/unilifeData目录。
2.2、暂停主从同步
登录slave 从MySQL,执行stop slave;
2.3、停止MySQL
service mysqld stop
2.4、备份
2.4.1、旧版MySQL程序备份
[unilife@db2 ~]$ cd /usr/local/
[unilife@db2 local]$ mv mysql/ mysql_56_old
2.4.2、数据备份
Db1:
[unilife@VM_44_118_centos ~]$ cd /unilifeData/mysqlData/
[unilife@VM_44_118_centos mysqlData]$ cp -rp mysql/ mysql_56_old
Db2:
[unilife@db2 ~]$ cd /unilifeData/data
[unilife@db2 data]$ cp -rp mysql/ mysql_56_old/
Db3:
[unilife@VM_44_118_centos ~]$ cd /unilifeData/mysqlData/
[unilife@VM_44_118_centos mysqlData]$ cp -rp mysql/ mysql_56_old
2.4.3、my.cnf配置文件备份
[unilife@db2 ~]$ cp /etc/my.cnf /etc/my_56_old.cnf
2.4.4、备份启动脚本
[unilife@db2 ~]$ mv /etc/rc.d/init.d/mysqld /etc/rc.d/init.d/mysqld_56_old
三、升级MySQL
3.1、解压新版MySQL
[unilife@db2 ~]$ tar –zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar
[unilife@db2 ~]$ mv mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
[unilife@db2 ~]$ chown –R mysql.root /usr/local/mysql
3.2、替换新版mysqld启动脚本
# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 755 /etc/rc.d/init.d/mysqld
3.3、修改my.cnf
添加以下内容:
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
skip-name-resolve
#slave-skip-errors=all
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3.4、启动mysql
[root@VM_99_60_centos ~]# service mysqld start
3.5、系统表升级
[root@VM_99_60_centos ~]# /usr/local/mysql/bin/mysql_upgrade -uroot –p
3.6、重启MySQL实例
[root@VM_99_60_centos ~]# service mysqld restart
四、重新开启主从同步
所有MySQL都升级完成后,重新进行数据同步,并检查同步状态。
mysql> start slave;
mysql> show slave status\G
看到以下信息,则同步正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
升级完成!
网友评论