Linux上mysql5.7升级到mysql8.0
linux mysql5.7升级到mysql8.0,本次在自己的测试环境验证升级,使用的是逻辑迁移的方式升级
操作步骤:
1.首先对mysql5.7的表数据和结构做全量备份
2.删除mysql5.7,清除log=/var/log/mysqld.log和Datadir=/var/lib/MySQL的数据,其中log、datadir的路径在/etc/my.cnf中可以找到;
3.安装数据库mysql8.0 4.数据回导,把步骤一备份的数据导入新的数据库中。
数据全量备份
对于在旧库建的用户和权限,要做单独处理,此处做处理库中的数据使用
(1)升级前需要备份数据库
mysql -e "show databases;" -uroot -p| grep -Ev "Database|information_schema|mysql|test|performance_schema|sys" | xargs mysqldump -uroot -p --databases > /data/data-for-upgrade.sql
# 此命令是将除information_schema|mysql|test|performance_schema|sys库之外的数据全部导出到/data/data-for-upgrade.sql

(2)删除mysql5.7,清除log=/var/log/mysqld.log和Datadir=/var/lib/MySQL的数据
rpm -e --nodeps `rpm -qa | grep mysql`
rpm -e --nodeps `rpm -qa | grep MySQL`
rpm -e --nodeps `rpm -qa | grep mariadb`
log、datadir中的数据清除:
其中log、datadir的路径在/etc/my.cnf中可以找到,log=/var/log/mysqld.log
Datadir=/var/lib/MySQL
首先查看目录是否有目标文件,然后执行以下三行:
执行命令: echo > /var/log/mysqld.log
执行命令: cd /var/lib/MySQL
清空历史数据:rm -rf ./*
(3)安装数据库mysql8.0
安装教程参考这里的
https://www.cnblogs.com/xuchuangye/p/18952144
启动完成
(4)导入数据
执行mysql -uroot -p 进入mysql控制台后使用 source /data/data-for-upgrade.sql 导入即可
(5)新建用户,处理用户和库的关系,以及权限
CREATE USER 'DMHR'@'%' IDENTIFIED BY 'root1234';

GRANT ALL PRIVILEGES ON wifite.* TO 'DMHR'@'%';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'DMHR'@'%';

登录DMHR账号验证数据和权限是否正常


浙公网安备 33010602011771号