升级方式
MySQL升级方式有两种,一种叫In-Place Upgrade,另外一种叫Logical Upgrade(逻辑升级方式)。
Logical Upgrade:利用mysqldump来直接导出SQL文件,然后导入到新库中,适应于跨
大版本的升级方案,做法相对安全,并能整理表中碎片。但如果有数
据量较大的库需要mysqldump导出,时间上的消耗就会很大,升级效
率就会受到影响。
In-Place Upgrade:它的工作方法简单快速,就是直接替换掉原来版本MySQL的安装目
录和my.cnf配置文件,利用mysql_upgrade脚本来完成系统表的升
级。
注:跨小版本升级可以使用in-place这种方式。
环境介绍:
服务器IP:192.168.12.161
数据库目录:/data/mysql/data
安装目录:/usr/local/mysql
配置文件:/etc/my.cnf
当前版本:5.6.44
升级步骤:
1、备份MySQL数据库。
[root@MySQLNode2 tmp]# mysqldump -uroot -p --single-transaction --master-data=2 -A > All.sql
2、关闭旧版本的数据库并且备份原来的数据库目录。
[root@MySQLNode2 tmp]# systemctl stop mysql
[root@MySQLNode2 tmp]# mv /data/mysql/data/ /data/mysql/data_bak
[root@MySQLNode2 tmp]# mkdir /data/mysql/data
[root@MySQLNode2 tmp]# chown -R mysql.mysql /data/mysql/data
3、替换MySQL的安装文件。
[root@MySQLNode2 tmp]# unlink /usr/local/mysql --解除之前的链接
[root@MySQLNode2 tmp]# tar xf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz --解压安装文件
[root@MySQLNode2 tmp]# mv mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/
[root@MySQLNode2 tmp]# ln -s /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql
[root@MySQLNode2 tmp]# chown -R mysql.mysql /usr/local/mysql
4、替换之前MySQL的配置文件为MySQL 5.7版本的my.cnf文件,并初始化数据库。
[root@MySQLNode2 tmp]# /usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/data/mysql/data
5、启动新版MySQL数据库。
注:在启动过程中要注意的是,需要添加–skip-grant-tables和–skip-networking参数,来保证没有任何的应用连接,让升级过程更加完全。
[root@MySQLNode2 mysql]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &
6、导入之前备份的数据库到新版本数据库中。
[root@MySQLNode2 tmp]# mysql < All.sql
7、需要升级数据字典信息。
[root@MySQLNode2 tmp]# /usr/local/mysql/bin/mysql_upgrade
8、正常启动MySQL数据库,不要使用–skip-grant-table和–skip-networking参数。
[root@MySQLNode2 tmp]# systemctl stop mysql
[root@MySQLNode2 tmp]# systemctl start mysql
9、登录MySQL数据库,检查升级是否成功。




