登入資料庫時,發現資料庫連線不上,報錯如下:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes)
為了以後方便排查,這裡記錄一下。
首先,停止MySQL服務
service mysqld stop
既然是密碼錯誤,那麼就先跳過密碼驗證的步驟
#vim /etc/my.cnf
然後,搜尋mysqld,找到[mysqld](port=3306上面那個):
/mysqld(在vim編輯狀態下直接輸入該命令可搜尋文字內容)。
注:windows下修改的是my.ini。
在 [mysqld] 底下新增語句:
skip-grant-tables
(注:skip-grant-tables:不啟動grant-tables授權表,作為啟動引數的作用:MYSQL伺服器不載入許可權判斷,任何使用者都能存取資料庫)
這是用來跳過密碼驗證的,新增之後儲存退出。
重新啟動MySQL服務
進入MySQL
mysql -u root -p
出現密碼輸入時,不用輸入直接按回車,就可以不用密碼就能登入
修改密碼
mysql> update user set password=password(「新密碼」) where user=」使用者名稱」;
如果報錯:
ERROR 1054(42S22) Unknown column 'password' in 'field list'
原因: 5.7版本下的mysql資料庫下已經沒有password這個欄位了,password欄位改成了authentication_string
mysql> update user set authentication_string=password(「新密碼」) where user=」使用者名稱」;
#重新整理MySQL許可權相關的表
mysql> flush privileges;
mysql> exit;
密碼修改完畢
編輯my.cnf(Windows下my.ini),將上面新增的內容去掉(skip-grant-tables)。
重新啟動MySQL
使用新密碼登入即可