MySQL 5.7.x 升级到 8.0.27(RPA2020.1.0 ~ 最新版本)

适用版本:RPA2020.1.0 ~ 最新版本

1. 准备

1.1 备份数据库

## 找到正确的套接字的路径: 
netstat -ln | grep mysql

## 备份sql格式, xxxxxx 是用户isa的密码 
## 备份数据库 -u 账号 -p密码 -B 数据库(多个空格分隔) ,xxxxx 表示密码
/isearch/mysql/bin/mysqldump -h localhost -u isa -p'xxxxx' -B isa > /isearch/db_bak.sql 

# 如果有【套接字的路径】则执行下面的备份:xxxxx 表示密码
/isearch/mysql/bin/mysqldump  -u isa -p'xxxxxx' -B isa > /isearch/db_bak.sql 

1.2 准备

  • 下载文件:

MySQL-8.0.27 源码附件
grant_user.zip

  • 上传到 /isearch 目录
# 如果是root账号上传的需要授权给普通用户,这里以isearch为例
chown -R isearch:isearch mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

# 解压Mysql安装包
xz -dk mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar

# 解压grant_user_sql.zip安装包
把grant_user_sql.zip解压,然后把grant_user.sql放入/isearch并赋权:
chown -R isearch:isearch grant_user.sql

# 停库
/isearch/bin/mysql.sh stop

# 移动旧版本mysql的data目录(重要)
mv /isearch/isa/datas/mysql/data /isearch/isa/datas/mysql/data_oldversion

#  创建新版本mysql的data目录并赋权(重要)
mkdir -p /isearch/isa/datas/mysql/data
chmod +x /isearch/isa/datas/mysql/data

PS : 停止服务的时候如果

查看 mysql 进程,如果还存在则使用 kill -9 [进程号] 删除该进程

查看mysql进程
ps -ef|grep mysql
# 删除进程
kill -9 [进程号....]

2 升级

# 
cd /isearch

# 修改软连接(修改前记住当前mysql对应的目录,方便还原)
ln -snf mysql-8.0.27-linux-glibc2.12-x86_64 mysql

#进入mysql主目录
cd mysql

# 配置修改(先备份)
cp -r /isearch/isa/conf/mysql/my.cnf /isearch/isa/conf/mysql/my.cnf.bak
vi /isearch/isa/conf/mysql/my.cnf

# my.cnf注释以下内容(前面加#)
query_cache_type=1
query_cache_size=256M
query_cache_limit=256M
log_warnings=2

# my.cnf中添加初始化临时目录([mysqld]部分添加tmpdir)
tmpdir=/isearch/tmp
并赋予/isearch/tmp高权限(没有请创建):chmod +x /isearch/tmp

# mysql初始化(保证旧版本数据库data目录已改名,参照上面)
/isearch/mysql/bin/mysqld --initialize-insecure --user=isearch --datadir=/isearch/isa/datas/mysql/data --basedir=/isearch/mysql

注意:
--user=isearch 表示启动mysql用户为isearch,如果现场是其他用户请修改
--datadir=/isearch/isa/datas/mysql/data 表示mysql数据位置,默认是不用修改
--basedir=/isearch/mysql 表示mysql安装位置,默认是不用修改

# 启动mysql (默认root为空密码)
/isearch/bin/mysql.sh start

# mysql赋权
/isearch/mysql/bin/mysql -h 127.0.0.1 -P3306 -u root mysql --default-character-set=gbk < /isearch/grant_user.sql
若赋权失败,先备份grant_user.sql,再编辑grant_user.sql去掉第一行再次执行赋权操作

# mysql数据导入
/isearch/mysql/bin/mysql -h127.0.0.1 -uisa -pisa1qaz2wsx isa
source /isearch/db_bak.sql

3、还原

# 进入主目录
cd /isearch

## 停止服务
/isearch/bin/mysqld.sh stop

## 修改软连接(mysql-5.7.xx-linux-glibc2.5-x86_64是实际的mysql旧版本文件夹)
ln -snf mysql-5.7.xx-linux-glibc2.5-x86_64 mysql

## 还原配置
cp -r /isearch/isa/conf/mysql/my.cnf.bak /isearch/isa/conf/mysql/my.cnf

## 备份数据
mv /isearch/isa/datas/mysql/data /isearch/isa/datas/mysql/data.bak

## mysql初始化
/isearch/mysql/bin/mysqld --initialize-insecure --user=isearch --datadir=/isearch/isa/datas/mysql/data --basedir=/isearch/mysql

## 启动mysql
/isearch/bin/mysql.sh start