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