为了解决mysql的安全漏洞,选择将mysql从5.3.7升级到8.0.30

还是写上5.7.37的安装步骤:centos7安装mysql5.7.37详细步骤_lanren312的博客-CSDN博客

参考博客: linux中安装卸载升级mysql版本步骤(由8.0.27升8.0.29)_Lightllll的博客-CSDN博客_linux mysql 升级安装

一、备份数据(很重要!很重要!很重要!)

mkdir /lanren312/mysqlback

mysqldump -u root -p --all-databases > /lanren312/mysqlbackup/mysqlbackup_20220919.sql

输入mysql密码

## 备份某一个库

mysqldump -u root -p dev_heroes > /lanren312/mysqlbackup/dev_heroes.sql

## 导入某一个库

mysql -u root -p prod_heroes < /lanren312/mysqlbackup/dev_heroes.sql

ps:好像是没有显示,千万不要手贱乱按其他键(本人没试过,猜测),如果文件很大,多等会就行了

二、下载解压mysql8.0.30

下载地址: MySQL :: Download MySQL Community Server

tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar

三、卸载原有的mysql(卸载前请先确认数据是否备份成功)

systemctl stop mysqld 停止mysql服务

rpm -qa|grep mysql  查看以前是否装有mysql

rpm:管理套件  -e:删除指定的套件  --nodeps:不验证套件档的相互关联性        

rpm -e --nodeps mysql-community-libs-5.7.37-1.el7.x86_64

rpm -e --nodeps mysql-community-server-5.7.37-1.el7.x86_64

rpm -e --nodeps mysql-community-libs-compat-5.7.37-1.el7.x86_64

rpm -e --nodeps mysql-community-client-5.7.37-1.el7.x86_64

rpm -e --nodeps mysql-community-common-5.7.37-1.el7.x86_64

find / -name mysql

rm -rf /var/lib/mysql 删除老版本mysql的所有文件和库

rm -rf /etc/my.cnf 手动删除my.cnf

rpm -qa|grep -i mysql 查看状态

 四、安装

rpm -hiv mysql-community-common-8.0.30-1.el7.x86_64.rpm

rpm -hiv mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm

rpm -hiv mysql-community-libs-8.0.30-1.el7.x86_64.rpm

rpm -hiv mysql-community-client-8.0.30-1.el7.x86_64.rpm

rpm -hiv mysql-community-icu-data-files-8.0.30-1.el7.x86_64.rpm

rpm -hiv mysql-community-server-8.0.30-1.el7.x86_64.rpm

1.安装8.0.32版本时有两个报错,解决参考:

rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm --force --nodeps

https://blog.csdn.net/qq_51929833/article/details/122966804

2.安装mysql-community-server-8.0.32-1.el7.x86_64.rpm报错,运行 yum install -y perl 

error: Failed dependencies:

/usr/bin/perl is needed by mysql-community-server-8.0.32-1.el7.x86_64

libaio.so.1()(64bit) is needed by mysql-community-server-8.0.32-1.el7.x86_64

libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.32-1.el7.x86_64

libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.32-1.el7.x86_64

perl(Getopt::Long) is needed by mysql-community-server-8.0.32-1.el7.x86_64

perl(strict) is needed by mysql-community-server-8.0.32-1.el7.x86_64

3.安装mysql-libs报错

yum remove mysql-libs

 

裸机安装8.0.32记录,安装执行命令

yum install -y net-tools

yum update

yum install libcrypto*

yum install -y net-tools

yum install -y libaio

yum install -y perl

五、修改配置文件

# 设置导入sql时文件大小限制 否则有些表导入不进去

innodb_log_file_size=1024M

innodb_strict_mode=0

# 设置大小写不敏感

lower-case-table-names=1 ## 这个没生效

 六、启动mysql

启动MySQL服务

systemctl start mysqld

查看MySQL的进程并设置服务器开机启动mysql

systemctl status mysqld

systemctl enable mysqld

查看初始化密码

cat /var/log/mysqld.log | grep password

mysql -uroot -p 初始密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '******';

备注: 5.7的修改是这样的..

ALTER USER USER() IDENTIFIED BY 'xxxxxxx';

use mysql;

update user set host = '%' where user ='root';

flush privileges;

ps: 用mysql连接工具就可以正常连接了。

8.0.32版本修改密码时提示:密码不符合当前策略要求

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'xxxxx';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql> SHOW VARIABLES LIKE 'validate_password%';

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> set global validate_password.policy=LOW;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 but这不就陷入了死循环,于是将密码先修改成复杂一点的(这个密码可要做好备份哟,别退出了就进不来了),再修改安全等级和密码规则:

set global validate_password.policy=0;

set global validate_password.length=1;

validate_password_policy 的取值: 0/LOW:只验证长度; 1/MEDIUM:验证长度、数字、大小写、特殊字符; 2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;

七、导入备份数据

source /lanren312/mysqlbackup/mysqlbackup_20220919.sql;

ps: 会看到数据快速导入,如果数据较大,需要一点时间..

windows也适用这个命令

八、检查mysql版本号

写道最后,mysql现已升级到8.0.33

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: