Mysql---之Mysqladmin修改帳號密碼方式

Mysql
mysql

DDL--數據定義語言(create、alter、drop、declare)sql

DML--數據操做語言(select、delete、update、insert)shell

DCL--數據控制語言(grant、revoke、commit、rollback)數據庫


添加:INSERT INTO [表名] VALUES('','',......順序排列的數據);服務器

查詢: SELECT * FROM [表名] WHERE ([條件]); ide

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

刪除:DELETE FROM [表名] WHERE ([條件]);   this

修改:UPDATE [表名] SET [修改內容如name = 'Mary'] WHERE [條件];  spa


mysqladmin  ----修改密碼code

        首先用戶登錄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;

  每一個帳戶賦權狀況以下圖:

 

下面實驗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]#

能夠看出,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數據庫,權限才能生效。

相關文章
相關標籤/搜索