共計 2012 個字符,預計需要花費 6 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關 mysql 用戶名 root 密碼遺忘怎么辦,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
講到用戶了, 就先說說 mysql 的用戶權限吧.5.7 開始, 有了很多改變:
1. 用戶長度變了.5.7.8 以后的用戶長度為 32 個字符,5.7.8 以前的用戶長度為 16 個字符,5.6 我記得好像是 8? 忘了. 咳咳
2. mysql_native_password 插件默認啟用, 且 password 以后將慢慢移除. 在 mysql.user 里面 password 字段已經木有了, 轉而通過 plugin 字段的加密算法將密碼加密后的字符存儲在 authentication_string 字段;
3.5.7.4 以后用戶的密碼可以設置有效期, 在有效期到了之后, 會要求重新設置密碼;
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 參數控制, 但必須在啟動之前設置;
6.5.7 的初始化與之前的比也有了變化. 刪除匿名用戶, 初始化的時候只保留了 root@ localhost 和 mysql.sys@ localhost 兩個用戶. 且也沒有了 test 這個庫;
7.5.7.8 開始增加了一個 super_read_only 的參數, 目的是除了 root 用戶的 supper 用戶都設為只讀;
8. 以前 grant 可以將沒有的用戶直接新增創建并賦權, 在 5.7 默認模式(sql_mode) 下, 是不能通過 grant 來新增新用戶, 必須先 create user 之后在 grant 權限;
參考官方手冊:http://dev.mysql.com/doc/refman/5.7/en/security.html
普通用戶修改, 就不細說了, 登陸擁有 super 用戶的直接如下語句修改:
alter user user_name@ host identified by password
主要說下 root 密碼的修復,2 種方法:
1. 常規方法:
在啟動的時候在 my.cnf 加上 skip-grant-tables 參數, 或者啟動選項 –skip-grant-tables, 然后進入 mysql 修改 mysql 密碼, 在重啟 mysql 服務即可; 網上這種帖子很多, 不細說;
2. 黑科技(不停機修改):
這種方法不推薦, 但絕對好用, 是跟某位大牛那學來的.
mysql 到目前 5.7 的 mysql.user 表都是 myisam 引擎(據說 8.0 以后就是 innodb 了). 提到 myisam 引擎, 大家都知道 myisam 的表的數據都是放在.MYD 里面的. 所以, 黑科技來啦;
1. 進入 data/mysql 目錄, 復制 user 表的 3 個文件到另外的庫,cp -a user* ../databasename1/
2. 需要有操作 databasename1 庫中表權限的用戶, 連上 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 講新密碼刷進內存. 我們已經沒有 super 用戶來 flush 了, 而且也不能停機, 這可怎么辦??? 大招來了,kill -HUP pid, 在操作系統執行該命令, 注意 pid 是 mysql 的 pid 不是 ppid, 別把父進程給掛起了. 具體 HUP 的功能, 百度吧. 不細說.
到這就大功告成了, 這個時候就可以用 root 以無密碼狀態登陸, 在進去修改 root 的密碼.ok. 收工!
這個方法的知識點: 首先 myisam 是的數據是存儲在文件里面的, 而且是可以通過復制直接將表結構, 數據, 索引都 copy 利用, 所以這也是一個安全隱患點,mysql 目錄的權限一定得控制好啊. 其次就是 kill -HUP pid 發起一個掛起信號, 然后 mysqld_safe 會監控到掛起, 就重新加載配置文件, 對線上業務是沒有任務影響的, 不會出現閃斷之類的情況出現.
關于“mysql 用戶名 root 密碼遺忘怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。