1. 程式人生 > >Linux中mysql密碼重置

Linux中mysql密碼重置

主要是為了解決MySQL for Linux錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

該錯誤發生於密碼輸入錯誤時,所以需要對密碼進行重置。

第一種情況:你剛剛安裝mysql,沒有修改過初始/動態密碼。

這種情況下mysql會自動生成一個動態密碼,你找到該動態密碼,修改為你自己的密碼就行了

找原始密碼:

有些有readme文件的,裡面就有:

否則就進入mysql的日誌檔案

vim /var/log/mysqld.log (每個人可能不一樣,你們自己找)

找到下面這句話,密碼在後面   

A temporary password is generated for [email protected]

注;如果找不到動態密碼就看第二種情況

然後修改密碼:

mysqladmin -u root -h 127.0.0.1 -p password

 

第二種情況,你找不到動態密碼或者改過密碼又忘了

1.重置密碼的第一步就是跳過MySQL的密碼認證過程,方法如下:

vim /etc/my.cnf(注:windows下修改的是my.ini)

在文件內搜尋mysqld定位到[mysqld]文字段:
/mysqld(在vim編輯狀態下直接輸入該命令可搜尋文字內容)

在[mysqld]後面任意一行新增“skip-grant-tables”用來跳過密碼驗證的過程,如下圖所示:

 

儲存文件並退出:

:wq

2.然後我們需要重啟MySQL:

/etc/init.d/mysql restart(或者/etc/init.d/mysqld restart)

有些使用者可能不一樣,自己查一下自己的重啟mysql的命令

3.重啟之後輸入mysql即可進入mysql。

4.接下來就是用sql來修改root的密碼

mysql> use mysql;
mysql> update user set password=password("你的新密碼") where user="root";

(現在版本更新,password欄位不能被識別,取而代之的是authentication_string,語句應更改為:

update user set authentication_string=password("你的新密碼") where user="root" ;)
mysql> flush privileges;(重新整理)
mysql> quit

到這裡root賬戶就已經重置成新的密碼了。

5.編輯my.cnf,去掉剛才新增的內容,然後重啟MySQL。大功告成!

注:如果找不到找不到my.cnf或者my.ini檔案

Linux:

windows:去安裝目錄下找my.ini