mysql(二)用户权限管理

(1)系统创建用户和创建用户并给予密码

useradd test1

passwd  test1  # 交互

useradd test1 && echo 123 | passwd --stdin 123 # 非交互

useradd test1 -p 123 # 创建用户并给予一个密码

# 创建用户:useradd adduser
# 删除用户:userdel
# 修改用户:usermod

(2)mysql创建用户创建用户并给予密码

mysql> create user wzj@'%';                      # 创建用户
Query OK, 0 rows affected (0.00 sec)

mysql> create user  wzj@'%' identified by '123'; # 注意这个细节
ERROR 1396 (HY000): Operation CREATE USER failed for 'wzj'@'%' 
mysql> create user  jzw@'%' identified by '123'; # 创建用户,没有权限
Query OK, 0 rows affected (0.00 sec)

# 进一步创建用户,并给予密码,并给予授权(细节:由这个用户就给权限,没有用户则创建用户并给权限)

grant all on test.* to jzw@'%' identified by 'wzj110';

 注意

grant all on *. *  to dbtest@'localhost' identified by 'dbtest';

-- 已有dbtest用户,这是在授权兼改密码 

-- 没有dbtest的情况下是创建带密码用户兼授权

-- 所以还可以用grant命令建用户,改密码,尼玛又多了一项技能有没有

-- 注意:假如这个密码输的和原来的不一致,尼玛后面登录不了恐怕他也不知道咋回事。

(3)删除和修改mysql用户

drop user wzj@'%';

delete user ;

update ...

(4)mysql用户的定义

--  形式:username@'主机域'

--  主机域:可以理解为是MySQL登陆的白名单

--  主机域格式:

       --  '172.25.2.5'
       --  '172.25.2.5%'  # 有11个用户可以连接(子网)
       --  '172.25.%。%'  # 
       --  '10.0.%.%'
       --  '%'            # 所有的-->不包括localhost,必须用-h才能连接
       --  'db01'         # 域名解析(主机名)
       --  '10.0.0.51/255.255.255.0' # 想用子网掩码的方式
       --  '10.0.0.51/24' #不支持这种格式的-->但是创建的时候没有报错!

细节

 -- %和localhost区别

 grant all on *.* to watf@'%';

 grant all on *.* to watf@'localhost';

说明:用第一种授权方式并没有获得本地主机的权限,localhost并不是%的子集,远程主机和本地主机请分别授权

(5)mysql修改密码的方式

刚装完MySQL数据库该做的事情

mysqladmin -uroot -p password 'wzj110'

# 或者mysql_secure*进行初始化

四种:grant,mysaladmin,set,update

mysqladmin库外修改密码,需要已知原来的密码!

grant:需要在库内修改密码,但是用户以前的权限不知道,不建议

update:在库内修改密码(改表内的数据),建议!

忘记密码

-- /etc/init.d/mysqld start                          

-- mysqladmin -uroot -p password 'newjfner;gotnylh'  

-- /etc/init.d/mysqld stop                               #(1)停

-- mysqld_safe --skip-grant-tables --skip-networking     #(2)跳过授权表,跳过网络启动

-- mysql                                                 #(3)免密登陆

-- 修改密码

-- 5.6的update修改密码-->注意加上条件!                     #(4)修改密码

update mysql.user set password=PASSWORD('110') where user='root' and host='localhost';

-- 5.7(字段名称的差异)-->调用函数(加密)

update mysql.user set authentication_string=password('110') where user='root' and  Host = 'localhost';

-- /etc/init.d/mysqld stop                               #(5)关闭 

-- mysqladmin -uroot -p170510   shutdown                 #等价(5)-->之前的密码
                   
-- /etc/init.d/mysqld start                              #(6)重启

-- mysql -uroot -p110                                    #(7)测试                      

说明:许多参数可以通过配置文件来修改

不错的博客

set:改当前登陆用户的密码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值