mysql数据库升级
1、数据库升级思路规划
- 数据库服务数据备份保存(数据备份)
- 数据库服务最新程序安装(最新版本数据库服务安装过程时,无需停止原有数据库旧版服务)
- 数据库服务原有程序关闭
- 数据库服务最新程序启动(加载原有程序数据实现挂库升级,并采用跳过授权表和跳过网络方式启动)
- 数据库服务升级数据结构(数据库服务升级程序后,还需要升级数据系统结构信息,因此升级时间和数据量无关)
- 数据库服务可以正常重启(数据库服务升级完毕后,确认数据库服务是可以正常完成重启操作)
- 数据库服务功能测试验证(反复核实验证与数据库服务相关的各项功能是否正常)
- 数据库服务升级工作完毕
说明:数据库服务升级时,不管哪个方式升级,都应该先做好数据备份,方便升级失败的回退。
2、5.6.last升级到5.7
注意:如果5.6的小版本不是5.6系列最后版本,建议升级到最后版本在升级到5.7)
①数据库服务安装(新的版本),通过查看服务程序目录信息确认是否安装完毕
②确认只有旧版本服务在运行中,新版本服务并未运行
③数据库服务原有程序关闭
④数据库服务最新程序启动
2.1 备份旧数据库数据和配置文件
mkdir /root/backup -pv
tar zcf 3306_data.tar.gz /mysql/data/
cp /etc/my.cnf /root/backup/my.cnf
2.2 修改旧版本数据库服务配置文件,使用新版本程序加载原有数据库中数据目录
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql57 #启动文件加载新的程序
datadir=/data/3306/data #数据目录使用旧的目录
socket=/tmp/mysql.sock
port=3306
server_id=16
innodb_fast_shutdown=0
2.3 利用命令脚本文件测试启动新版本数据库程序服务
/usr/local/mysql57/bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking &
# 查看数据库服务启动进程信息
ps -ef |grep mysql
2.4 数据库服务升级数据结构
/usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql.sock --force
# 验证数据库中数据结构是否升级成功
/usr/local/mysql57/bin/mysql -S /tmp/mysql.sock
mysql> show databases;
2.5 数据库服务重启正常状态
# 关闭之前升级状态的数据库服务
/usr/local/mysql57/bin/mysqladmin -S /tmp/mysql.sock shutdown
# 修改系统服务启动程序文件信息
vim /etc/systemd/system/mysqld.service
# 利用原有数据库启动命令进行服务启动(systemctl)
# 检查数据服务升级完毕后是否正常启动
# 检查核实数据库服务进程信息是否存在
# 查看数据库服务密码加密插件是否变为了8.0数据库服务的默认设置
# 连接进入数据库服务中,查看数据库服务版本信息
说明:在数据库版本从5.7升级到8.0时,可以省略mysql_upgrade升级改变数据结构信息操作,因为8.0版本会自动完成此步骤
3、数据库服务升级版本确认(在升级之前操作,可选)
在数据库服务8.0之后,提供了一个mysqlshell命令功能,利用命令功能中的特殊函数,可以在升级前对当前环境版本进行验证;
简而言之:就是数据库服务8.0之后,利用mysqlshell中的函数,可以实现数据库服务升级的预检查功能
# 上传解压8.0版本数据库mysql shell功能程序
tar xf mysql-shell-8.0.20-linux-glibc2.12-x86-64bit.tar.gz
ln -s mysql-shell-8.0.20-linux-glibc2.12-x86-64bit mysqlsh
# 确认当前5.7版本信息是否可以升级到相应的8.0版本
指定连接的旧版服务的用户名与密码,并根据网络白名单列表和端口建立连接,实现测试
./mysqlsh root:123456@10.0.0.101:3357 -e "util.checkForServerUpgrade()"
# 只要关注结果信息中,是否存在errors信息
4、数据库服务升级回滚
将备份的数据目录重新挂在旧的程序上即可

浙公网安备 33010602011771号