Mysql---之Mysqladmin修改账号密码方式

Mysql

DDL--数据定义语言(create、alter、drop、declare)

DML--数据操作语言(select、delete、update、insert)

DCL--数据控制语言(grant、revoke、commit、rollback)


添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据);

查询: SELECT * FROM [表名] WHERE ([条件]); 

建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]);   

删除:DELETE FROM [表名] WHERE ([条件]);   

修改:UPDATE [表名] SET [修改内容如name = 'Mary'] WHERE [条件];  


mysqladmin  ----修改密码

        首先用户登陆mysql有两种方式,一种是本地登陆localhost,另一种是异地登陆。

首次按 在数据库中新增三个用户wjl、jjl和wang 都只有select权限。10.68.4.58--Mysql主机,10.68.4.201--Test机器

mysql> grant select on *.* to jjl@'10.68.4.201' identified by 'jjl'; 
mysql> grant select on *.* to wjl@localhost identified by 'wjl'; 
mysql> grant select on *.* to wang@'%' identified by 'wang'; 
mysql> flush privileges;

  每个账户赋权情况如下图:

112800_ThZP_2322690.jpg 

下面实验mysqladmin修改账号密码:

    Mysqladmin是Mysql程序包里的命令,如果你要使用该命令,必须确保服务器上安装了Mysql程序。首先我在10.68.4.58上测试。

[root@localhost data]# mysqladmin -u wjl -h localhost -p password 'public'
Enter password: ***=wjl
[root@localhost data]# mysqladmin -u wang -h 10.68.4.58 -p password public
Enter password: ***=wang
[root@localhost data]#

114116_igUX_2322690.png

可以看出,wjl和wang都只有select权限,但是都可以正常修改账号密码。接下来我们再去4.201上去测试。

[root@localhost bw_mysql_install]# mysqladmin -u jjl -h 10.68.4.58 -p password public
Enter password: 
mysqladmin: Can't turn off logging; error: 'Access denied; you need (at least one of) the 
SUPER privilege(s) for this operation'
[root@localhost bw_mysql_install]# mysqladmin -u wang -h 10.68.4.58 -p password wang 
Enter password: 
mysqladmin: Can't turn off logging; error: 'Access denied; you need (at least one of) the 
SUPER privilege(s) for this operation'
[root@localhost bw_mysql_install]#

这里,jjl和wang 都报相同的错误,权限拒绝。都缺少super权限。一般的只有数据库的超级管理员才有这个权限,此时,若想jjl和wang能够修改账号密码,那么只需要给他们添加super权限即可。

mysql> grant super,select on *.* to jjl@'10.68.4.201' ;
mysql> grant super,select on *.* to wang@'%';

再到10.68.4.201上去执行上面的修改密码语句,就不会报错了。

这里面  wang 账号比较有意思,我也在找为啥Mysql账户远程登陆,就需要super权限,本地登陆就不需要。如果有大神知道这点,麻烦留言交流下,不胜感谢。


其他修改Mysql密码的方法,未完待续。。。


如果Mysql账号没有All 权限,那么该账号,set只能修改自己账号的密码Mysql。

超级管理员则可以修改其他人的密码

mysql> set password for 'wang'@'%' = password ('public');
ERROR 1044 (42000): Access denied for user 'long'@'%' to database 'mysql'
切换到root用户给 wjl用户赋值
mysql> grant all on *.* to 'wang'@'%' ; --root用户登陆赋值
mysql> set password for 'jiulong'@'%' = password ('public');--可以执行成功。

如果是grant给用户账号修改密码。同样set一样,普通用户只可以修改自己的密码,只有拥有ALL权限,才可以修改其他用户。

mysql> grant all on *.* to 'jiulong'@'%' identified  by  'wang' ; 
执行成功。
mysql> revoke all on *.* from 'jiulong'@'%' ;
exit
#mysql -ujiulong  -h 10.68.4.58  -p wang;
mysql> grant usage on *.* to 'wang'@'%' identified  by  'wang';
ERROR 1044 (42000): Access denied for user 'long'@'%' to database 'mysql'

这里需要注意下,grant和revoke  账号权限后,用户需要重新连接Mysql数据库,权限才能生效。









    




转载于:https://my.oschina.net/u/2322690/blog/469755

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值