標籤:退出 root使用者 cat sql命令 不用 for 刪除 登入 賬戶
MySQL重設密碼
可能由於各種原因,我們不小心丟掉了MySQL密碼,要用的時候無法登陸了,只能重設密碼了!該配置修改文檔是在Linux Ubunt環境下進行的,其他動作系統亦可作為參考,原理一樣!
1) 修改MySQL的設定檔,跳過登入時的許可權驗證
CentOS是在 /etc/my.cnfUbunt的mysql設定檔路徑:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf #在[mysqld]下追加上 skip-grant-tables [mysqld] ... skip-grant-tables
2) 重啟mysql服務使配置生效
sudo service mysql restart
3) 重啟完mysql服務之後我們再次執行mysql登入命令,會發現不用輸入密碼即可登入.
mysql -u root -p#斷行符號完會提示輸入密碼,不用輸密碼直接斷行符號即可登入
4) 重設root賬戶密碼
#重設root密碼為空白update mysql.user set authentication_string="" where user="root"; #重設 root 使用者的密碼為空白(5.7 之前為 password 欄位)#修改root密碼update mysql.user set authentication_string=password("pswd") where user="root";#在重設 root 密碼的同時,也可以設定預設密碼。不過密碼不能為明文,必須使用 password() 函數加密
5) 重新整理許可權表
flush privileges;
重設root密碼,重新整理許可權表之後退出mysql命令列,將剛在設定檔中添加的跳過許可權驗證的配置命令刪除.最後重啟mysql服務即可用root使用者密碼登入!
6) 刪除添加的跳過許可權驗證配置命令,重啟mysql服務
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf #刪除或注釋剛才在[mysqld]下追加 skip-grant-tables [mysqld] ... #skip-grant-tables
重啟mysql服務
sudo service mysql restart
出於安全考慮我們不會讓MySQL使用者無密碼即可登入,要在重設完密碼後為root賬戶設定密碼
設定密碼要把設定檔中的跳過許可權驗證命令去掉以後重啟mysql服務登入設定才行,不然會提示沒有驗證,無許可權操作
方法1:
以 root 身份登入 mysql後,再使用 set password 命令修改密碼:set password for [email protected] = password("new_password");
方法2:
mysqladmin -u root -p password "new_password"#執行該命名後會提示輸入原密碼,輸入正確後即可修改。
方法3:
update mysql.user set authentication_string=password("pswd") where user="root";#在重設 root 密碼的同時,也可以設定預設密碼。不過密碼不能為明文,必須使用 password() 函數加密使用該方法之後需重新整理許可權列表:flush privileges;
MySQL重設密碼