注意这是上课笔记,仅供参考!!!
一、安装MySQL5.7
模拟我们已经拥有一个MySQL数据库,现在要从5.7升级到8.0,所以我们先安装一个5.7的数据库并导入数据
1、安装
使用SSH工具连接到Linux,上传MySQL5.7的rpm包

2、解压tar包
tar -xvf MySQL5.7.tar

3、使用yum命令进行安装
yum install -y *.rpm
然后等待安装完成

4、登录MySQL
Ⅰ、首先先启动MySQL数据库
systemctl start mysqld

Ⅱ、查看MySQL初始密码
grep 'temporary password' /var/log/mysqld.log

Ⅲ、登录MySQL
mysql -uroot -p

Ⅳ、更改默认密码
为方便操作,这里把密码改为123456
// 设置新密码的验证策略为0,表示最低
set global validate_password_policy=0;
// 设置新密码的长度最小值为1位
set global validate_password_length=1;
// 设置新密码为123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

输入exit即可退出数据库
5、导入sakila数据库
上传sakila数据库的压缩包sakila-db.zip
然后解压(由于是zip格式,所以可能会提示解压命令不存在,可以使用yum install -y unzip命令进行安装)
unzip sakila-db.zip

切换到sakila-db目录下
cd sakila-db

导入sakila数据库
mysql -uroot -p < sakila-schema.sql
输入密码

登录MySQL查看是否导入成功
mysql -uroot -p
show databases;

sakila数据库存在,导入成功
二、导出数据库数据
开始模拟升级数据库,使用命令导出数据库
mysqldump -u root -p --add-drop-table --routines --ignore-table=mysql.innodb_index_stats --ignore-table=mysql.innodb_table_stats --events --all-databases --force > data-for-upgrade.sql

没有报错,成功导出到当前目录下的data-for-upgrade.sql
三、升级数据库
停止当前版本数据库,并且移除出开机启动
systemctl stop mysqld
systemctl disable mysqld

上传新版本数据库的tar包,由于刚刚安装MySQL5.7版本解压残留的rpm,会影响下面的步骤
所以使用下面命令删除旧版本rpm包
rm -rf *.rpm

上传并解压新版本的rpm包(老师发的zip压缩包,所以使用unzip命令解压)
unzip mysql-8.0.34.zip

使用yum命令安装新数据库
yum install -y *.rpm
等待安装完成

创建一个MySQL8.0 空库
## mysqld --initialize --datadir=/保存数据库数据的地方
mysqld --initialize --datadir=/var/lib/mysql80

修改 /etc/my.cnf中修改datadir的配置,指向 /var/lib/mysql80
vi /etc/my.cnf

把datadir=/var/lib/mysql,改为datadir=/var/lib/mysql80

保存并退出vi编辑器
使用ll /var/lib/命令可以查看/var/lib/mysql8的用户/组为root

修改/var/lib/mysql80的用户/组
chown -R mysql /var/lib/mysql80
chgrp -R mysql /var/lib/mysql80
再次使用ll /var/lib/命令可以查看/var/lib/mysql8的用户/组已经更改为mysql

更改SELinux为允许模式(默认为强制模式,有可能会遇上错误)
setenforce 0
getenforce

启动数据库
systemctl start mysqld
查看临时密码登录MySQL
grep 'temporary password' /var/log/mysqld.log

第二个为新的临时密码
登录MySQL,并更改初始密码
mysql -uroot -p
这里方便操作把密码改为123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

使用exit退出数据库

四、导入旧数据库的数据
使用下面命令导入数据
/root/sakila-db/data-for-upgrade.sql是指向刚才备份旧数据库的sql文件
mysql -uroot -p --force</root/data-for-upgrade.sql
输入数据库的密码

进行MySQL 8数据库的强制升级
mysqld --user=mysql --upgrade=FORCE
执行需要一点时间

五、验证数据库数据
登录MySQL
mysql -uroot -p
使用命令查库
show databases;

数据库都在,数据检查略~~~




