mysql 登錄報錯:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: Yes)
本文主要針對用戶名、密碼正確,但是登錄不了mysql的問題的分析與解決。其他情況可再參考其他的貼子或資料,本文中不會再做過多介紹。
一:報錯圖片信息
問題分析:
提示信息翻譯:錯誤 1045(28000):用戶 'root'@'localhost' 的訪問被拒絕(使用密碼:是)
從翻譯過來的錯誤信息中,我們可知數(shù)據(jù)庫拒絕了我們的訪問,才導(dǎo)致我們不能正常訪問它。那么究竟是什么原因?qū)е滤o我們反饋了這個提示信息呢?我查閱了一些貼紙,出現(xiàn)這種問題的原因有以下:
1. 用戶密碼或用戶信息錯誤
2. 缺少權(quán)限
3……(其他后續(xù))
但是根據(jù)我的實際情況,我的問題原因不在以上之列,所以還是得具體問題,具體分析。我這里遇到的問題是用戶名、密碼正確,但是登錄mysql卻登錄不了,總是返回用戶訪問被拒絕,也就是上邊圖片中的錯誤。
二:問題分析
1. 根據(jù)我出現(xiàn)的問題,我猜測可能是密碼過期了,于是我想盡辦法去修改用戶密碼(根據(jù)各種up主提供的材料),但最終還是沒有解決。
2. 查詢用戶
用過跳過mysql的方式,進(jìn)入數(shù)據(jù)庫后,使用以下語句查詢用戶信息
select user,host from user;
查詢后發(fā)現(xiàn),user表中沒有了root 用戶,因此導(dǎo)致了使用root用戶登錄系統(tǒng)被拒絕。那么是什么原因?qū)е铝藃oot用戶丟失呢?
三:解決辦法
針對丟失了root用戶導(dǎo)致mysql登錄被拒絕的問題的解決辦法
1. 停止mysql服務(wù)
net stop mysql
2. 在my.ini中增加skip-grant-tables 參數(shù),如果啟動服務(wù)后服務(wù)又立即停止,則需要增加shared-memory 參數(shù) ,此步驟主要是為了免密登錄mysql(PS 此步驟可以直接 在cmd中直接輸入:mysqld --console --skip-grant-tables --shared-memory)
(1)在my.ini中配置(shared-memory在啟動服務(wù)后如果服務(wù)自動停止)
(2)在命令行編輯器中直接使用mysqld --console --skip-grant-tables --shared-memory
以上兩種都能夠免密進(jìn)入到mysql,只是第二種需要一個單獨的命令行編輯器中啟動,并且不能關(guān)閉命令行編輯器??筛鶕?jù)實際情況進(jìn)行選擇
3. 使用mysql -u root 命令直接進(jìn)入mysql中
4. 進(jìn)入mysql后,需要使用use mysql命令切換到mysql數(shù)據(jù)庫
5. 進(jìn)入mysql后,使用select user,host from user;語句查詢用戶表中有哪些用戶,正常情況下user表中應(yīng)包含以下用戶信息:
如果查詢的結(jié)果中沒有root用戶,則root用戶可能已經(jīng)丟失了。
此時可使用以下命令創(chuàng)建root 用戶
# 創(chuàng)建sql create user 'root'@'localhost' identified by '123456'; # 如果執(zhí)行此語句報錯,提示“The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement” 此時需要使用flush privileges;語句刷新,刷新后可執(zhí)行create 語句。 # 當(dāng)然如果不使用create 創(chuàng)建,那么可以使用insert into 語句將用戶信息插入user表內(nèi),具體如下: insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('root','','','','');
6 分配權(quán)限:
# 分配權(quán)限 GRANT ALL PRIVILEGES ON *.* TO 'root'@localhost WITH GRANT OPTION;
7. 更新user表(設(shè)置mysql允許其他主機(jī)訪問)
update user set host='%' where user='root';
更新成功后建議使用 flush privileges;刷新一下
以上步驟完成后使用quit退出mysql,然后停止mysql服務(wù),在配置文件中注釋掉之前加的參數(shù)(如果是直接采用在cmd中輸入mysqld --console --skip-grant-tables --shared-memory的方式進(jìn)入的,直接關(guān)閉當(dāng)前的cmd窗口,然后啟動服務(wù)即可),然后再啟動服務(wù)。當(dāng)mysql服務(wù)重新啟動成功后,使用mysql -u root -p 并輸入密碼的方式可成功訪問mysql
四:mysql設(shè)置密碼永久不過期
此章節(jié),主要用戶驗證以上問題是否是密碼過期問題導(dǎo)致
# 設(shè)置密碼永久不過期 alter user 'root'@'localhost' password expire never; # 注意 如果host被更改為% ,則需要使用以下語句進(jìn)行設(shè)置,否則系統(tǒng)會報“ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'”的錯誤 alter user 'root'@'%' password expire never;
到此這篇關(guān)于mysql 登錄報錯:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: Yes)的文章就介紹到這了,更多相關(guān)mysql ERROR 1045內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)問題的解決
- mysql登錄遇到ERROR 1045問題解決方法
- mysql登錄報錯提示:ERROR 1045 (28000)的解決方法
- MySQL ERROR 1045 (28000): Access denied for user ''root''@''localhost'' (using password: NO) 的原因分解決辦法
- MySQL ERROR 1045 (28000) 錯誤的解決辦法
- 解決mysql安裝時出現(xiàn)error Nr.1045問題的方法
- 解決mysql ERROR 1045 (28000)-- Access denied for user問題
- mysql ERROR 1045 (28000)問題的解決方法
- 解決MySQL添加新用戶-ERROR?1045?(28000)的問題
- 解決Mysql:ERROR?1045?(28000):Access?denied?for?user?‘root‘@‘localhost‘?(using?password:?NO)的方法
- 全面分析MySQL?ERROR?1045出現(xiàn)的原因及解決
- MySQL登錄時出現(xiàn)ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)無法打開解決方法匯總
相關(guān)文章
MYSQL必知必會讀書筆記第十和十一章之使用函數(shù)處理數(shù)據(jù)
這篇文章主要介紹了MYSQL必知必會讀書筆記第十和十一章之使用函數(shù)處理數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2016-05-05淺談為什么Mysql數(shù)據(jù)庫盡量避免NULL
這篇文章主要介紹了淺談為什么Mysql數(shù)據(jù)庫盡量避免NULL,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02CentOS7下二進(jìn)制安裝mysql 5.7.23
這篇文章主要為大家詳細(xì)介紹了CentOS7下二進(jìn)制安裝mysql 5.7.23,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06linux下改良版本mysqldump來備份MYSQL數(shù)據(jù)庫
我的備份腳本都是在凌晨執(zhí)行的,經(jīng)常在慢查詢?nèi)罩纠锩婵吹竭@樣的信息:select * from table1; 之前一直很納悶,最后才了解到原來是MYSQLDUMP搞的鬼。2008-07-07MySQL數(shù)據(jù)庫中遇到no?database?selected問題解決辦法
這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫中遇到no?database?selected問題的解決辦法,這是MySQL數(shù)據(jù)庫的錯誤提示,意思是沒有選擇數(shù)據(jù)庫,在使用MySQL命令行操作時需要先選擇要操作的數(shù)據(jù)庫,否則就會出現(xiàn)這個錯誤,需要的朋友可以參考下2024-03-03MySQL安裝第四步報錯(initializing?database報錯)的圖文解決方法
這篇文章主要給大家介紹了關(guān)于MySQL安裝第四步報錯(initializing?database報錯)的解決方法,"initializing?database"?通常出現(xiàn)在安裝MySQL的過程中,表示MySQL數(shù)據(jù)庫初始化過程中遇到了問題,需要的朋友可以參考下2024-06-06