一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除!
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源配置文件-CSDN博客
解决安装依赖包,如果缺少就用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修改用户库权限-CSDN博客
5、MySQL8 用户资源限制