MYSQL8.0新建用户并授予权限流程
# 登录(这里用的是root账号)
mysql -u root -p

#进入到mysql.db
use mysql;

#查看当前的用户以及可访问的地址还有授权能力
select user,host,grant_priv from user;

#如果root用户无授权能力(grant_priv = 'N'),则可以开起来
update mysql.user set Grant_priv='Y' where user='root';

#创建用户,最后的参数是密码。‘localhost’表示只能本机登录,也可以设置你期望的登录ip,不设置的话默认是‘%’,也就是都可以登录
create user 'happytest'@'localhost' identified by 'happytest';


#给新用户授权,这里授予的权限是只能操作一个数据库(数据库名为:happy_db,把数据库名变成 *.* 就是给所有数据库的权限)(如果root用户只允许localhost登录,而这里授权的时候又给用户授予不管任何地址都可以登录的能力,则会报无权限的错。此时需要把root用户也改成‘%’的登录限制才行)(也就是说,授权者的可登录源ip范围应该 ≥ 被授权者的可登录源ip范围)
grant all privileges on happy_db.* to 'happytest'@'localhost';



# 本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问
flush privileges;
#删除对应的用户(且为只能以该方式登录的用户)
drop user happytest@localhost;

