mysql重置 root 使用者密碼。
Linux下預設安裝了mysql,預設root使用者密碼為空。
於是設定了root使用者的密碼,使用了錯誤的命令如下:
mysql> update user set password=123456 where user="root";
(正確為mysql> update user set password=‘123456’ where user=‘root’; //注意單引號)
然後重新整理 flush privilege;結果exit/quit退出mysql重新使用root使用者登入時,一直提示密碼錯誤,拒絕訪問。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
此時只能使用普通使用者進入mysql,由於不是root使用者,不能看到mysql資料庫,從而無法修改mysql資料庫中的user表,無法更改密碼。
這時的解決辦法為:
1.編輯配置檔案跳過登入驗證。
vim /etc/my.cnf (注:windows下修改的是my.ini)
在mysql內新增一行:
skip-grant-table
儲存退出重啟mysql使配置生效。
2.重新設定root使用者密碼。
使用mysql 命令進入mysql,這時因為設定了跳過登入驗證,所以進入的是root使用者且不需要root密碼。
進入mysql資料庫,修改mysql資料庫內user表內root的密碼 password欄位。
update user set password=password("123456") where user="root";
flush privileges;
然後為了安全再回到配置檔案中,將新增的一行skip-grant-table去掉或者註釋掉(#)。重啟mysql。
嘗試使用mysql -u root -p 輸入密碼登入,成功。