Mac mysql 8.0 登錄報(bào) Access denied for user 'root'@'localhost' (using password: YES) 錯(cuò)誤

錯(cuò)誤場(chǎng)景描述

使用數(shù)據(jù)庫(kù)連接工具(如:dataGrip)或者使用 msyql 命令行連接 mysql 8.0 的本地 server 時(shí),報(bào)如下錯(cuò)誤:

Access denied for user 'root'@'localhost'(using password: YES)

本地 mysql8.0 數(shù)據(jù)庫(kù)版本:

解決辦法

1. 停掉 mysql 服務(wù)

# 切換至管理員賬戶
sudo bash -c "su"

# 殺掉 mysql 進(jìn)程
ps aux | grep -v grep | grep mysql | awk '{print $2}' | xargs kill -9

執(zhí)行完畢后,可以在系統(tǒng)偏好設(shè)置的 mysql 服務(wù)里查看 mysql 服務(wù)器的狀態(tài):

當(dāng)然也可以通過(guò)如下命令查看是否還存在 mysql 進(jìn)程:

# 查看是否還存在 mysql 進(jìn)程
ps aux | grep -v grep | grep mysql

2. 啟動(dòng) mysql 8.0 server

# 切換至管理員用戶
sudo bash -c "su"

# 不啟動(dòng) grant-tables 授權(quán)表方式啟動(dòng) mysql server,可以不用輸入密碼登錄數(shù)據(jù)庫(kù),此時(shí)該終端會(huì)阻塞
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables

3. 新開(kāi)一個(gè) terminal 終端,登錄 mysql 8.0 server

# 輸入如下命令,按回車即可登錄數(shù)據(jù)庫(kù),無(wú)需輸入密碼,直接回車即可
/usr/local/mysql/bin/mysql -uroot -p

4. 執(zhí)行如下命令

# 1. 使用 mysql 數(shù)據(jù)庫(kù)
mysql> use mysql;

# 2. 將 authentication_string 置空
mysql> update user set authentication_string = '' where user = 'root';

# 3. 重新設(shè)置新密碼,其中 new_password 就是要設(shè)置的新密碼
mysql> alter user 'root'@'localhost' identified by 'new_password';

# 4. 如果上述第 3 步執(zhí)行提示成功,則輸入如下命令,然后關(guān)閉命令終端,就可以正常登錄 mysql 8.0 server 了
mysql> flush privileges;

此時(shí),會(huì)報(bào)如下錯(cuò)誤:

關(guān)閉已經(jīng)打開(kāi)的兩個(gè) terminal 終端,重新執(zhí)行上述的步驟 1,殺死 mysql 進(jìn)程:

使用系統(tǒng)偏好設(shè)置的 MySQL 服務(wù)正常開(kāi)啟 mysql 服務(wù),然后重新執(zhí)行上述步驟的 3、4:

# 1. 輸入如下命令,按回車即可登錄數(shù)據(jù)庫(kù),無(wú)需輸入密碼,直接回車即可
/usr/local/mysql/bin/mysql -uroot -p

# 2. 使用 mysql 數(shù)據(jù)庫(kù)
mysql> use mysql;

# 3. 將 authentication_string 置空
mysql> update user set authentication_string = '' where user = 'root';

# 4. 重新設(shè)置新密碼,其中 new_password 就是要設(shè)置的新密碼
mysql> alter user 'root'@'localhost' identified by 'new_password';

# 5. 如果上述第 3 步執(zhí)行提示成功,則輸入如下命令,然后關(guān)閉命令終端,就可以正常登錄 mysql 8.0 server 了
mysql> flush privileges;

5. 重新使用 dataGrip 連接 mysql 8.0 server

注意

上述操作同樣適用于,忘記 root 賬戶登錄密碼時(shí),用來(lái)重置登錄密碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容