1. 程式人生 > >mysql重置 root 使用者密碼。

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 輸入密碼登入,成功。