mysql升级回退_MySQL数据库升级方案

本文介绍了从mysql5.5+、5.6+版本升级到5.7.28的完整过程,包括环境检查、数据库备份、新版本安装、安全加固、数据导入、字典升级、验证及回退策略。重点关注了在升级过程中如何确保可逆操作,以保护数据安全。
摘要由CSDN通过智能技术生成

根据数据库漏扫报告所示,拟将mysql5.5+、mysql5.6+版本的数据库,统一升级到mysql 5.7.28。为保证升级可逆,计划原mysql服务不变,在本机安装新版本mysql,区分端口号,同时提供服务。在旧版本导出数据库,导入新版本。确认升级完成后,切换应用端口,停止低版本mysql服务。

0eaa89460833c442eb33fd6f7416982d.png

具体操作步骤如下:检查操作系统环境

1、检查硬盘df -h2、检查内存

free –h

cat/proc/meminfo |grep -i huge3、检查系统版本

lsb_release -a4、检查相关配置文件cat etc/profile

cat ~/.bash_profile

cat etc/sysctl.conf

cat ect/host

cat etc/security/limits.conf

cat etc/security/limits.d/20-nproc.conf

cat etc/selinux/config

cat etc/pam.d/login

cat sys/kernel/mm/transparent_hugepage/defrag检查当前mysql环境

1、检查msyql如何安装

rpm –qa|grep –i mysql2、检查mysql安装目录

which mysql3、检查mysql相关文件位置

ps –ef |grep -i mysql

mysql 安装目录、数据文件目录、binlog目录、my.cnf目录、tmp文件目录

4、检查mysql相应参数show variables like '%sql_mode%'\G备份当前mysql

1、动态修改innodb_fast_shutdown=0 以执行full purge

mysql -uroot -p

set global innodb_fast_shutdown=0;2、执行flush table with read lock 加全局读锁

flush table with read lock;3、设置库为只读的

set global read_only=on;4、备份数据

mysqldump -u root -p --add-drop-table --routines --events--all-databases –force --set-gtid-purged=OFF> data-for-upgrade.sql5、停止mysql服务

service mysql stop

ps aux|grep mysqld_safe

netstat -ntupl|grep mysqld安装mysql5.7.28

根据检查情况,在符合条件的目录安装mysql5.7.28。安全加固

1、删除非root或非localhost的用户。

Mysql安全加固也可以使用命令行工具mysql_secure_installation,根据提示一步步执行即可。select user,host from mysql.user;

delete from mysql.user whereuser not in (‘mysql.sys’,’mysql.session’,’mysqlxsys’,’root’,’mysql.infoschema’) or host not in (‘localhost’);

select user,host frommysql.user;

set password for ‘root’@’localhost’=password(‘admin’);

flush privileges;

2、删除test数据库、清理mysql.db

Drop database test;

select * from mysql.db\G

Delete from mysql.db where usernot in (‘mysql.sys’,’mysql.session’,’mysqlxsys’,’root’,’mysql.infoschema’) or host not in (‘localhost’);

select user,host frommysql.user;

select * from mysql.db\G

flush privileges;

导入备份

在my.cnf 中加入skip_grant_tables参数,启动mysql,导入sql文件。

mysql -uroot -p--force

echo $?

升级数据字典

mysqlupgrade -uroot –p

所有项目显示都是ok。验证升级

1、去掉my.cnf中的skip_grant_tables。

2、重启mysql

service mysql restart

systemctl restart mysql

3、登录mysql,测试升级之后能否正常访问

mysql –uroot –p

select user();

select version();

show grants;

show database;

insert 插入测试升级失败回退

1、启动旧版mysqlservice mysql start

2、解锁表

unlock tables。

set global read_only=OFF;

3、测试mysql

selectuser();

selectversion();

showgrants;

showdatabase;

insert插入测试

本公众号是个人学习工作笔记,希望大家发现问题能及时和我本人沟通,希望你与我共同成长。个人微信zgjt12306。

dcd106227b5231c8767637115ff3b230.png

欢迎关注“自学Oracle”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值