为了解决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