Bootstrap

数据库服务版本升级

数据库版本升级方法:
第一种方法:本地升级(数据库服务5.6-5.7-8.0) 停库
第二种方法:迁移升级(数据库服务数据迁移到另一台新的数据库服务中)
            旧版数据库服务地址 10.0.0.51 网络停止 
            新版数据库服务地址 10.0.0.51 8.0 读取旧版中的数据
            
数据库版本升级注意事项:
· 数据库升级,需要在GA版本之间进行升级,不支持数据库测试版升级
· 数据库升级时,建议将旧版本数据库升级到小版本的最新版
· 数据库升级时,不支持跨版本升级 5.6 -- 5.7 -- 8.0
· 数据库升级时,小版本之间升级,只支持GA版本
https://dev.mysql.com/doc/refman/8.0/en/upgrade-paths.html
PS:在升级数据库版本时,需要编写升级项目方案(简历)

数据库升级过程:
5.6 --- 5.7 
第一个历程:准备好测试数据
create database game;
create table user(id int,name varchar(10),gender char(5));
insert into user values(01,'zhangsan','m');
insert into user values(02,'lisi','f');
insert into user values(03,'wangwu','m');
grant all on *.* to oldboy@'%' identified by '123456';

第二个历程:将旧版数据库数据进行备份
tar zcvf 3356_backup.tar.gz  ./3356/

第三个历程:安装新版本数据库服务
省略... 

第四个历程:实现挂库升级
停止旧版数据库服务
[root@xiaoQ-01 local]# vim /data/3356/my.cnf
innodb_fast_shutdown=0 
-- 企业实战环境,需要添加此配置参数信息在配置文件中,实现优雅关闭数据库服务

vim /data/3356/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql57
datadir=/data/3356/data
socket=/tmp/mysql3356.sock
port=3356
innodb_fast_shutdown=0

/usr/local/mysql57/bin/mysqld_safe --defaults-file=/data/3356/my.cnf --skip-grant-tables --skip-networking &
/usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql3356.sock --force

第五个历程:重新启动数据库服务 
vim /etc/systemd/system/mysqld3357.service
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/data/3356/my.cnf

pkill mysql 
systemctl start mysqld3357 

mysql -uroot -S /tmp/mysql3356.sock

5.7 - 8.0
不同点:不需要执行升级命令
/usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql3356.sock --force

第四个历程:实现挂库升级
[root@xiaoQ-01 local]# vim /data/3357/my.cnf
innodb_fast_shutdown=0
-- 企业实战环境,需要添加此配置参数信息在配置文件中,实现优雅关闭数据库服务
或者
> set global innodb_fast_shutdown=0
> select @@innodb_fast_shutdown
-- 连接进入旧版本数据库中,直接设置数据库服务功能参数信息,使之立即生效
[root@xiaoQ-01 local]# systemctl stop mysqld3357
-- 配置文件加入以上参数后,此时关闭数据库服务,会采用优雅关闭服务,而不是采用快速关闭数据库服务方式

vim /data/3356/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3356/data
socket=/tmp/mysql3356.sock
port=3356
innodb_fast_shutdown=0

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3356/my.cnf --skip-grant-tables --skip-networking &

pkill mysql 

第五个历程:重新启动数据库服务 
vim /etc/systemd/system/mysqld3380.service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3356/my.cnf

systemctl daemon-reload
systemctl start mysqld3380

数据库8.0新的功能介绍:检查数据库升级环境
第一个历程:安装mysql-shell工具
https://downloads.mysql.com/archives/shell/

tar xf mysql-shell-8.0.26-linux-glibc2.12-x86-64bit.tar.gz
ln -s mysql-shell-8.0.26-linux-glibc2.12-x86-64bit mysqlsh
/usr/local/mysqlsh/bin
-rwxr-xr-x 1 7161 31415 33241904 Jun 11  2021 mysqlsh


mysql -uroot -S /tmp/mysql3357.sock
grant all on *.* to root@'%' identified by '123456';
-- 创建一个连接旧版数据库服务用户


./bin/mysqlsh root:[email protected]:3357 -e "util.checkForServerUpgrade()"
PS:主要关注命令执行后的errors信息即可,没有errors报错表示可以进行升级操作

;