打卡--MySQL8.0 一(单机部署)

本文介绍了MySQL8.0的主要改进,包括性能提升、新默认字符集、错误日志增强、角色概念和增强的JSON支持。详细讲解了安装过程、用户管理策略、资源限制以及新版本中的密码插件和兼容性问题解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除!

MySQL 8.0 简介

MySQL 8.0与5.7的区别主要体现在:1、性能提升;2、新的默认字符集;3、更好的错误日志;4、提供了角色的概念;5、增强的JSON支持。从整体来看,MySQL 8.0在性能和功能上都做了较大的提升。

MySQL 8.0是MySQL数据库的一个版本,它在性能、稳定性、易用性等方面都有了显著的提升。8.0版本引入了很多新的功能,如窗口函数、公共表表达式(CTE)、角色等。

更多内容请参考官方文档

一、安装MySQL 

1、获取MySQL软件包

 MySQL :: MySQL Community Downloads

2、下载安装

mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar

3、使用rpm包功能说明

MySQL8 数据文件解析

4、使用rpm包安装

linux配置本地YUM源及网络YUM源_本地yum源配置文件-优快云博客

解决安装依赖包,如果缺少就用yum源进行安装

删除mariadb

rpm -qa  | grep  mariadb

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64

安装MySQL数据库

[root@192 opt]# rpm -ivh mysql-community-common-8.0.35-1.el7.x86_64.rpm
[root@192 opt]# rpm -ivh mysql-community-client-plugins-8.0.35-1.el7.x86_64.rpm
[root@192 opt]# rpm -ivh mysql-community-libs-8.0.35-1.el7.x86_64.rpm
[root@192 opt]# rpm -ivh mysql-community-client-8.0.35-1.el7.x86_64.rpm
[root@192 opt]# rpm -ivh mysql-community-icu-data-files-8.0.35-1.el7.x86_64.rpm
[root@192 opt]# rpm -ivh mysql-community-server-8.0.35-1.el7.x86_64.rpm

初始化MySQL

[root@192 ~]# mysqld --initialize-insecure --user=mysql

启动mysql


[root@192 ~]# cat /var/log/mysqld.log

[root@192 ~]# mysql -uroot -p  (使用默认密码登录)    

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ops7565!#!#';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

5、msyql8 卸载

查询本机安装的mysql

[root@localhost mysql]# rpm -qa |grep -i mysql
mysql-community-icu-data-files-8.0.35-1.el7.x86_64
mysql-community-client-plugins-8.0.35-1.el7.x86_64
mysql-community-server-8.0.35-1.el7.x86_64
mysql-community-libs-8.0.35-1.el7.x86_64
mysql-community-client-8.0.35-1.el7.x86_64
mysql-community-common-8.0.35-1.el7.x86_64
[root@localhost mysql]# 
卸载rpm包
[root@localhost mysql]# rpm -e --nodeps  mysql-community-icu-data-files-8.0.35-1.el7.x86_64
[root@localhost mysql]# rpm -e --nodeps  mysql-community-client-plugins-8.0.35-1.el7.x86_64
[root@localhost mysql]# rpm -e --nodeps  mysql-community-server-8.0.35-1.el7.x86_64
[root@localhost mysql]# rpm -e --nodeps  mysql-community-libs-8.0.35-1.el7.x86_64
[root@localhost mysql]# rpm -e --nodeps  mysql-community-client-8.0.35-1.el7.x86_6

删除所有MySQL文件

find / -name mysql

rm -rf  /var/lib/mysql
rm -rf  /var/lib/mysql/mysql
rm -rf  /usr/local/mysql

删除/etc/my.cnf配置文件

rm /etc/my.cnf

删除日志文件

rm -rf /var/log/mysql/mysqld.log
 

二、MySQL用户管理策略及资源限制

1、用户访问白名单

root@'%'                 ----任何地址
root@'192.0.0.1'     ----只允许单个地址
root@'192.0.0.%'    ----24掩码 1-254
root@'192.0.0.5%'  ----50-59
root@'localhost'      ----数据库本地socket

2、创建用户

2.1、mysql8新特性,创建用户时一并设置密码

mysql> create user test@'%' identified by '123';

2.2、创建用户兼容mysql老版本客户端

mysql> create user test2@'%' identified with mysql_native_password by '123';
Query OK, 0 rows affected (0.02 sec)

“WITH mysql_native_password” 是 MySQL 数据库中的一种身份验证插件,用于对用户进行身份验证。它使用 MySQL 原生的密码加密算法,是 MySQL 8.0 版本之后默认的身份验证方式。使用 “WITH mysql_native_password” 可以保证数据库的安全性,并且兼容旧版本的 MySQL 客户端。

2.3、删除用户

3、修改用户

mysql> alter user test2@'%'  identified with mysql_native_password by '123456';

用户锁定与解锁

锁定test2用户

mysql> ALTER USER 'test2'@'%' ACCOUNT LOCK;

解锁test2用户

mysql> ALTER USER 'test2'@'%' ACCOUNT UNLOCK;

4、MySQL8用登录控制

4.1、设置密码过期时间

ALTER USER 'username'@'%' PASSWORD EXPIRE;                                //设置立即过期
ALTER USER 'username'@'%' PASSWORD EXPIRE INTERVAL 30 DAY; //设置30天过期
ALTER USER 'username'@'%' PASSWORD EXPIRE NEVER;                  //禁用密码过期

4.2、 禁止重复使用最近3个或超过30天的密码

 修改文件 my.cnf,mysql8.0是/etc/my.cnf:

[mysqld]
password_history=3
password_reuse_interval=30

4.3、用户锁定策略

# 连续登录失败3次则锁定1天,天数可取值:0-32767,设置 0 则代表解锁
CREATE USER 'test'@'localhost' IDENTIFIED BY 'test123' FAILED_LOGIN_ATTEMPTS 7 PASSWORD_LOCK_TIME 1;

# 连续登录失败3次则永久锁定
ALTER USER 'try8'@'localhost' FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME UNBOUNDED;

MYSQL8用户权限配置详解_mysql8.0修改用户库权限-优快云博客

5、MySQL8 --root密码重置

5.1、 关闭数据库

[root@192 ~]# systemctl  stop mysqld

5.2、安全模式启动数据库
[root@192 ~]# 2024-03-10T14:03:54.700831Z mysqld_safe Logging to '/data/3306/data/192.168.87.154.err'.

5.3、无密码登录数据库,刷新MySQL授权表

[root@192 ~]# mysql -uroot 

5.4、重启数据库到测试新密码登录

三、MySQL8用户的新特性

1、密码插件,在8.0中替换为了 caching_sha2_password加密模式
2、在8.0中不支持grant直接创建用户并授权,必须先建用户后grant授权。
     密码插件sha2会影响老的客户端程序连接问题。
     例如:客户端工具,navicat 、 sqlyog工具不支持(无法连接)
     主从复制,MGR ,不支持新的密码插件的用户 
     老的驱动无法连接数据库,代码需要更新

3、解决方法,建立用户时指定with mysql_native_password
     create with mysql_native_password
     alter with mysql_native_password
     建议修改配置文件,指定密码插件,修改配置文件需要重启服务

     vi /etc/my.cnf
    default_authentication_plugin=mysql_native_password

    

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值