卸载默认的mariadb
#查看是否安装自带mariadb-lib
rpm -qa|grep mariadb
#卸载自带mariadb-lib
rpm -e --nodeps mariadb-libs
# -–nodeps 不需要检查依赖关系
准备
mysql历史版本下载地址
https://downloads.mysql.com/archives/community/
我这里下载的是8.0.30 注意:8.0.39安裝不成功😓
建议下载rpm的mysql安装包

# 下载mysql8.0.30
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.39-1.el9.x86_64.rpm-bundle.tar
解压
tar -xvf mysql-8.0.39-1.el9.x86_64.rpm-bundle.tar
-x:表示解包(extract)操作。
-v:表示详细模式(verbose),它会在解包过程中显示正在处理的文件列表。
-f:表示指定文件名,后面跟着你要解包的 .tar.xz 文件的名称。
#成功执行会得到rpm文件

在解压后的路径中使用rpm安装mysql及捆绑的相关依赖
rpm -ivh *.rpm --force --nodeps
命令解析:
rpm:命令本身,用于处理 RPM 软件包。
-i:表示安装(install)一个或多个软件包。
-v:表示详细模式(verbose),它会在安装过程中显示更多的信息。
-h:表示显示安装进度的散列(hash),通常显示为一个进度条。
*.rpm:指定要安装的文件,星号 * 是一个通配符,表示当前目录下所有以 .rpm 结尾的文件。
--nodeps:这个选项用于跳过依赖性检查。--no 是一个否定前缀,deps 表示依赖性。通常,rpm 会检查软件包的依赖性,确保所有必需的依赖都已安装。使用 --nodeps 会忽略这些检查,这可能会带来风险,因为缺少依赖可能导致软件包不能正常工作。
--force:这个选项用于强制安装软件包,即使某些条件不满足(例如,如果软件包已经安装或存在冲突)也会继续安装。

出现错误
warning: mysql-community-server-8.0.39-1.el9.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a8d3785c: NOKEY
//更新最新的秘钥即可
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
查看安裝的myql位置
whereis mysql

MySQL的安装路径为/usr/bin/mysql,
其配套的mysqlclient库头文件位于/usr/include/mysql,
库文件位于/user/lib64/mysql。
给目录权限才能启动数据库文件不然会报错
chown -R mysql:mysql /var/lib/mysql/
命令 chown -R mysql:mysql /var/lib/mysql/ 的作用是将 /var/lib/mysql/ 目录及其所有子目录和文件的所有者和所属组递归地更改为 mysql 用户和 mysql 组。这通常在安装或配置 MySQL 数据库时执行,确保 MySQL 服务有适当的权限来访问其数据目录。
#启动数据库
systemctl start mysqld
#初始化数据库
mysqld --initialize --console
启动mysql
systemctl start mysqld
#查看状态
systemctl status mysqld

获取随机的root密码
cat /var/log/mysqld.log

修改密码
#进入mysql
mysql -u root -p*i6ypFTVS=?e

# 将root密码修改为Aa@123456 满足安全策略要求
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa@123456';

默认是只允许本机访问,还需要对账户进行授权
#进入mysql
show databases; #查看数据库
use mysql; #进入mysql库
update user SET host = "%" WHERE user='root'; #修改为是所有可以访问
select host, user, authentication_string, plugin from user; #查看记录 host变成%
#让修改生效
FLUSH privileges;

修改默认端口
默认端口很容易被攻击,因此可以修改mysql的端口
#打开配置文件,默认位置在etc
vi /etc/my.conf

重启mysql

MySQL8.0远程连接报错
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。
#进入MySQL
mysql -uroot -p
# 修改加密规则
ALTER USER 'root'@'%' IDENTIFIED BY 'Aa222@111' PASSWORD EXPIRE NEVER;
# 更新一下用户的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa222@111';
# 刷新权限
flush privileges;
#自定义密码
alter user 'root'@'%' identified by 'AaA@1123';

浙公网安备 33010602011771号