溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql用戶名root密碼遺忘怎么辦

發(fā)布時間:2021-11-06 10:51:30 來源:億速云 閱讀:173 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)mysql用戶名root密碼遺忘怎么辦,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

    講到用戶了,就先說說mysql的用戶權(quán)限吧.5.7開始,有了很多改變:
 
   
    1.用戶長度變了.5.7.8以后的用戶長度為32個字符,5.7.8以前的用戶長度為16個字符,5.6我記得好像是8? 忘了.咳咳
    2. mysql_native_password插件默認(rèn)啟用,且password以后將慢慢移除.在mysql.user里面password字段已經(jīng)木有了,轉(zhuǎn)而通過plugin字段的加密算法將密碼加密后的字符存儲在authentication_string字段;
    3.5.7.4以后用戶的密碼可以設(shè)置有效期,在有效期到了之后,會要求重新設(shè)置密碼;
    4.5.7.6開始,create和alter user可以鎖定用戶,鎖定后,用戶將不能訪問mysql.如:ALTER USER 'jeffrey'@'localhost' ACCOUNT LOCK;
    5.5.7.5開始,mysql提供了ssl和RSA通信證書, auto_generate_certs和sha256_password_auto_generate_rsa_keys參數(shù)控制,但必須在啟動之前設(shè)置;
    6.5.7的初始化與之前的比也有了變化.刪除匿名用戶,初始化的時候只保留了root@'localhost'和mysql.sys@'localhost'兩個用戶.且也沒有了test這個庫;
    7.5.7.8開始增加了一個super_read_only的參數(shù), 目的是除了root用戶的supper用戶都設(shè)為只讀;
    8.以前grant可以將沒有的用戶直接新增創(chuàng)建并賦權(quán),在5.7默認(rèn)模式(sql_mode)下,是不能通過grant來新增新用戶,必須先create user之后在grant權(quán)限;
    
    
     參考官方手冊:http://dev.mysql.com/doc/refman/5.7/en/security.html
    
    
     普通用戶修改,就不細(xì)說了,登陸擁有super用戶的直接如下語句修改:
     alter user user_name@'host' identified by 'password';
    
     主要說下root密碼的修復(fù),2種方法:
     1.常規(guī)方法:
       在啟動的時候在my.cnf加上skip-grant-tables參數(shù),或者啟動選項--skip-grant-tables,然后進(jìn)入mysql修改mysql密碼,在重啟mysql服務(wù)即可;網(wǎng)上這種帖子很多,不細(xì)說;
      
     2.黑科技(不停機(jī)修改):
       這種方法不推薦,但絕對好用,是跟某位大牛那學(xué)來的.
       mysql到目前5.7的mysql.user表都是myisam引擎(據(jù)說8.0以后就是innodb了).提到myisam引擎,大家都知道m(xù)yisam的表的數(shù)據(jù)都是放在.MYD里面的.所以,黑科技來啦;
       1.進(jìn)入data/mysql目錄,復(fù)制user表的3個文件到另外的庫,cp -a user* ../databasename1/
       2.需要有操作databasename1庫中表權(quán)限的用戶,連上databasename1庫,直接更改root用戶密碼為空:update user set entication_string='' where user='root';  最后檢查一下select user,host,entication_string from databasename1 where user='root';
       3.在將databasename1目錄的user的3個文件覆蓋原mysql庫下面的文件. cp -a data/databasename1/user* data/mysql/
       4.這個時候還不能直接登錄,因為修改用戶密碼后,需要flush privileges講新密碼刷進(jìn)內(nèi)存.我們已經(jīng)沒有super用戶來flush了,而且也不能停機(jī),這可怎么辦??? 大招來了,kill -HUP pid,在操作系統(tǒng)執(zhí)行該命令,注意pid是mysql的pid不是ppid,別把父進(jìn)程給掛起了.具體HUP的功能,百度吧.不細(xì)說.
       到這就大功告成了,這個時候就可以用root以無密碼狀態(tài)登陸,在進(jìn)去修改root的密碼.ok.收工!
       這個方法的知識點:首先myisam是的數(shù)據(jù)是存儲在文件里面的,而且是可以通過復(fù)制直接將表結(jié)構(gòu),數(shù)據(jù),索引都copy利用,所以這也是一個安全隱患點,mysql目錄的權(quán)限一定得控制好啊.其次就是kill -HUP pid 發(fā)起一個掛起信號,然后mysqld_safe會監(jiān)控到掛起,就重新加載配置文件,對線上業(yè)務(wù)是沒有任務(wù)影響的,不會出現(xiàn)閃斷之類的情況出現(xiàn). 

關(guān)于“mysql用戶名root密碼遺忘怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI