将5.7 升级至 8.0
1.预检查
# 新特性:
1、mysql-shell工具,8.0以后,可以调用这个命令,升级之前的预检查。
例子:
[root@db01 ~]# mysqlsh root:123@192.168.22.51:3306 -e "util.checkForServerUpgrade()"
预检测很有必要
2、升级时不再需要手工 mysql_upgrade
3、限制:升级前必须要备份。否则无法回退。
MySQL 5.7.32 升级至 8.0.24 版本演练
a. 下载 8.0.24 版本的 mysql-shell,并安装 。
https://downloads.mysql.com/archives/
[root@db01 app]# yum install -y mysql-shell-8.0.24-1.el7.x86_64.rpm
或者:
[root@db01 opt]# tar xf mysql-shell-8.0.24-linux-glibc2.12-x86-64bit.tar.gz
[root@db01 opt]# ln -s /opt/mysql-shell-8.0.24-linux-glibc2.12-x86-64bit
/usr/local/mysqlsh
[root@db01 bin]# vim /etc/profile
export PATH=/usr/local/mysqlsh/bin:$PATH
[root@db01 bin]# source /etc/profile
b. 创建连接用户
[root@db01 data]# mysql -S /tmp/mysql3357.sock
mysql> grant all on *.* to root@'10.0.0.%' identified by '123';
c. 预检查
[root@db01 data]# mysqlsh root:123@192.168.22.51:3357 -e
"util.checkForServerUpgrade()" >/tmp/up.log
[root@localhost bin]# ./mysqlsh -S /tmp/mysql57.sock -e
"util.checkForServerUpgrade()"
d. 停原库(5.7.32)
[root@db01 data]# mysql -S /tmp/mysql3357.sock
kill 会话
oldguo-db01 [(none)]>set global innodb_fast_shutdown=0;
[root@db01 data]# /usr/local/mysql57/bin/mysqladmin -S /tmp/mysql3357.sock
shutdown
冷备数据库
e. 使用高版本软件挂低版本数据启动
[root@db01 data]# /usr/local/mysql/bin/mysqld_safe --defaults-
file=/data/3357/my.cnf --skip-grant-tables --skip-networking &
启动完就升级完了
[root@db01 data]# /usr/local/mysql/bin/mysqld_safe --defaults-
file=/data/3357/my.cnf &
700

被折叠的 条评论
为什么被折叠?



