最近狀態(tài)很不好,一直暈暈暈暈暈暈乎乎的,一個(gè)測(cè)試實(shí)例,下班前修改了一下root的密碼,接著就下班走人,第二天來(lái)發(fā)現(xiàn)root密碼忘了
剛好自動(dòng)化安裝腳本整理好了,本來(lái)想著算了直接重裝實(shí)例得了,簡(jiǎn)單省事也花不了半分鐘,反正是測(cè)試實(shí)例,沒(méi)什么大問(wèn)題
發(fā)現(xiàn)有些思維定勢(shì),所以最近一直暗示自己要做一些一上來(lái)就排斥的事,強(qiáng)制改變一下思維方式,那么就重置一下,不要通過(guò)重裝來(lái)繞過(guò)這個(gè)問(wèn)題
試了好幾種方式,有的行有的不行,直說(shuō)最簡(jiǎn)單可行的一種方法:
1,停止實(shí)例(如果實(shí)例在開(kāi)啟的話),非服務(wù)名啟動(dòng),也即用mysqld命令加上--skip-grant-tables方式啟動(dòng)MySQL服務(wù)
/usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/usr/local/mysql8_data/mysql8000/etc/my.cnf --skip-grant-tables &
或者
/usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/bin/mysqld_safe --defaults-file=/usr/local/mysql8_data/mysql8000/etc/my.cnf --skip-grant-tables &
2,本地以sock方式連接值該實(shí)例,指定實(shí)例的sock文件后回車讓輸密碼,(不用輸密碼)直接回車可正常連接
3,切換到mysql庫(kù)下,
3.1.執(zhí)行update user set authentication_string = '' where user = 'root';
3.2.刷新權(quán)限,flush privilegs;
3.3.重置密碼:alter user 'root'@'%' identified by '********';
3.4.刷新權(quán)限,flush privilegs;
4,退出當(dāng)前連接后,如果繼續(xù)采用步驟2中的方式連接,發(fā)現(xiàn)是連不上的,必須輸入密碼(也就是重置了密碼之后,必須指定密碼的方式登錄)
需要注意的是,忘記密碼后,以--skip-grant-tables啟動(dòng)實(shí)例之后,在本地只能以sock連接方式登錄。
如果使用tcp/ip方式登錄是不可行的,提示輸入密碼之后,繼續(xù)回車,會(huì)提示 Can't connect to MySQL server on '127.0.0.1',不難理解,為確保安全,重置密碼只能在本地(sock)連接。
over,繼續(xù)干活。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。