可能由於各種原因,我們不小心丟掉了mysql密碼,要用的時候無法登陸了,只能重置密碼了!該配置修改文件是在linux ubunt環境下進行的,其他作業系統亦可作為參考,原理一樣!
修改mysql的配置檔案,跳過登入時的許可權驗證
centos是在 /etc/my.cnf
ubunt的mysql配置檔案路徑:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
#在[mysqld]下追加上 skip-grant-tables
[mysqld]
...skip-grant-tables
重啟mysql服務使配置生效
sudo service mysql restart
重啟完mysql服務之後我們再次執行mysql登入命令,會發現不用輸入密碼即可登入.
mysql -u root -p
重置root賬戶密碼
update mysql.user set authentication_string="" where user="root";
update mysql.user set authentication_string=password("pswd") where user="root";
重新整理許可權表
flush privileges;
重置root密碼,重新整理許可權表之後退出mysql命令列,將剛在配置檔案中新增的跳過許可權驗證的配置命令刪除.最後重啟mysql服務即可用root使用者密碼登入!
刪除新增的跳過許可權驗證配置命令,重啟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 root@localhost = 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 密碼 mysql重置密碼
ubuntu下重置mysql的root密碼 sudo vi etc mysql my.cnf,在 mysqld 段中加入一行 skip grant tables sudo service mysql restart,重啟mysql服務 sudo mysql u root p mysql,用空密碼進入...
mysql 重置密碼 mysql 重置密碼
mysql 重置密碼 版本5.7之前 1 修改mysql配置檔案 vi etc my.cnf 注 windows下修改的是my.ini 在 mysqld 後面任意一行新增 skip grant tables 用來跳過密碼驗證的過程。重啟mysql 2 進入mysql root localhost m...
重置評 mysql密碼 重置mysql密碼
以下解決方法在此url中 當使用 mysql uroot p 時,提示下面錯誤 error 1045 28000 access denied for user root localhost using password no 那麼我們可以重置密碼 etc init.d mysql stop 先停止m...