Mac下mysql 8.0.22 找回密碼的方法
Mac 最新版 MySQL 8.0.22 找回密碼大全
問題描述:
昨天心血來潮, 想在Mac上體驗(yàn)一下最新版的MySQL的更改密碼的流程, 一下子手賤用mysql_native_password替代caching_sha2_password改了plugin之后, 再用UPDATE SET來修改authentication_string, 還不記得加password(‘new password')函數(shù), 從而導(dǎo)致了
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
原因分析:
整件事下來專坑的地方有幾點(diǎn):
1、password()函數(shù)在MySQL 8.0中已被棄用
2、authentication_string字段下只能是mysql加密后的41位字符串密碼, 其他的會(huì)報(bào)格式錯(cuò)誤. 這也就意味著md5(‘new password')不能起到原來password(‘new password')的功能
3、mysql 8.0 數(shù)據(jù)庫默認(rèn)的認(rèn)證插件是caching_sha2_password, 包括你使用mysqladmin去初始化數(shù)據(jù)庫也是使用這個(gè)的,所以如果想讓我們平常的mysql連接客戶端也可以連接上MySQL8.0的數(shù)據(jù)庫那就要修改default_authentication_plugin, 也就是mysql.user里面的plugin這column
解決方案:
第一步: 關(guān)閉MySQL服務(wù)器
左上角蘋果icon - System Preferences - MySQL - Stop MySQL Server

第二步: 用系統(tǒng)管理員權(quán)限跳過MySQL安全認(rèn)證強(qiáng)行登陸
1.Command + Space
2.Terminal
3.sudo -i
4.cd /usr/local/mysql/bin/
5../mysqld_safe --skip-grant-tables &
6.return (就是鍵盤上的return點(diǎn)一下)
7.這時(shí)候MySQL Server再次變成running, 可以用ps -ef | grep -v ‘grep' | grep 'mysql'去查看它的PID以及啟動(dòng)它的mysqld_safe的PID
8../mysql
截至目前為止, 已經(jīng)順利用安全模式登陸MySQL

9. FLUSH PRIVILEGES; (這條語句在這里是把當(dāng)前user表的用戶信息和privilege表的權(quán)限提取到內(nèi)存里, 保證可以順利得到權(quán)限更改user表)
10. 先把user表里的root的authentication_string設(shè)為空字符串, 再用ALTER user去重新設(shè)置密碼
11. 退出MySQL, 并用kill -9殺死m(xù)ysqld_safe, 殺死m(xù)ysql, 重新啟動(dòng)
12. 用新設(shè)置的密碼正常登陸
USE mysql; UPDATE user SET authentication_string = '' WHERE User = 'root'; ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信