命令行都要以管理員運(yùn)行
成都創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需設(shè)計(jì),是成都網(wǎng)站推廣公司,為戶(hù)外休閑椅提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開(kāi)發(fā)等。成都網(wǎng)站推廣熱線(xiàn):028-86922220
1:net stop mysql 停止mysql服務(wù)
2:mysqld --console --skip-grant-tables --shared-memory 啟動(dòng)MySQL服務(wù)的時(shí)候跳過(guò)權(quán)限表認(rèn)證
3:由于上面的命令行被mysql的服務(wù)給占用,我們得重新開(kāi)啟一個(gè)新的命令行
4:在新開(kāi)的命令行中執(zhí)行mysql
5:update user set authentication_string = '' where user='root' ; 將root用戶(hù)的密碼清空
6:quit 退出,然后在之前的命令行將我們開(kāi)啟的mysql服務(wù)停止掉(Ctrl+C或者關(guān)閉命令行),然后執(zhí)行net start mysql 重新啟動(dòng)mysql服務(wù)
7:在我們之后開(kāi)啟的命令行中輸入mysql -uroot -p 然后按enter鍵,輸入密碼繼續(xù)按enter鍵(這里密碼已經(jīng)被清空),
8:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼'; 修改密碼
9:退出后,使用新密碼登錄
注意的地方,網(wǎng)上有些給的是使用update命令在第五步直接修改密碼為我們重置的密碼,然后使用flush privileges;命令刷新權(quán)限再退出,重啟mysql服務(wù),然后使用我們重置的密碼重新登陸。然而你會(huì)發(fā)現(xiàn)登錄會(huì)提示密碼不正確,
下面是使用update命令將密碼修改為root
登錄報(bào)錯(cuò),說(shuō)明使用update直接修改密碼是不可以的。我們也可以從上面看到update保存的密碼是明文
使用alter命令修改后的密碼是加密的
update 方法保存的為明文是由于沒(méi)有使用password()方法,而password()方法在mysql5.7.6版本后已經(jīng)廢棄了,所以必須alter命令去修改密碼了。
如果在第5步直接使用alter命令去修改密碼也是不可以的,會(huì)報(bào)錯(cuò)
說(shuō)是在免鑒權(quán)的情況下不支持這個(gè)操作
所以我們必須先清空密碼,然后再使用alter命令修改密碼
ps:mysql5.7.6版本后 廢棄user表中 password字段 和 password()方法,所以舊方法重置密碼對(duì)mysql8.0版本是行不通的,共勉
希望能幫助你,還請(qǐng)及時(shí)采納謝謝
Ubuntu在Mysql 8.0在線(xiàn)安裝成功后(sudo apt install),默認(rèn)的root用戶(hù)密碼為空,默認(rèn)監(jiān)聽(tīng)本機(jī),只能在本機(jī)登錄,直接命令`mysql`即可登錄 。
Centos安裝完成后,可能需要密碼,密碼位置在
如果沒(méi)有密碼,或者忘記密碼請(qǐng)?jiān)谂渲梦募尤?skip-grant-tables ,ubuntu配置文件在 /etc/mysql/ 路徑下。
注: 跳過(guò)密碼后,登錄進(jìn)入后必須先 flush privileges 才能修改密碼。
1:第一種方式
直接在用Linux命令 mysqladmin 修改。
2:第二種方式
登錄mysql 更改密碼
顯示ok成功。
注:由于我這里沒(méi)有默認(rèn)安裝validate_password插件,所以直接修改成功,有些默認(rèn)安裝的是修改不成功的,因?yàn)樘?jiǎn)單的密碼,不符合密碼規(guī)則,會(huì)報(bào)錯(cuò)如下: ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
3:關(guān)于validate_password插件
validate_password是一款密碼規(guī)則插件,查看密碼規(guī)則命令:
安裝完成后,查看顯示如下:
參數(shù)說(shuō)明:
當(dāng)指定密碼規(guī)則后,如果嫌麻煩,直接更改密碼規(guī)則即可,如偏要設(shè)置123456簡(jiǎn)單密碼。
雖然改了密碼,但是發(fā)現(xiàn)root登錄仍無(wú)需登錄密碼,或者加參數(shù)-p輸入密碼時(shí),任何密碼都可以進(jìn)入。
原因:查看用戶(hù)插件信息
顯示root插件為auth_socket,這種插件無(wú)需密碼,所以設(shè)置任何密碼都無(wú)效。
更改插件為 mysql_native_password 或者 caching_sha2_password
更改完成后,需重新設(shè)置root密碼生效,修改方法同上。修改后,登錄需要輸入正確密碼
注:為了提供更安全的密碼加密,MySQL8.0的首選默認(rèn)密碼認(rèn)證插件是caching_sha2_password,而不是mysql_native_password,根據(jù)自己需求選擇插件
關(guān)于auth_socket插件
這種插件驗(yàn)證方式有以下特點(diǎn):
auth_socket 這個(gè)插件因?yàn)橛羞@些特點(diǎn),它很適合我們?cè)谙到y(tǒng)投產(chǎn)前進(jìn)行安裝調(diào)試的時(shí)候使用,而且也有相當(dāng)?shù)陌踩?,因?yàn)橄到y(tǒng)投產(chǎn)前通常經(jīng)常同時(shí)使用操作系統(tǒng)的 root 用戶(hù)和 MySQL 的 root 用戶(hù)。當(dāng)我們?cè)谙到y(tǒng)投產(chǎn)后,操作系統(tǒng)的 root 用戶(hù)和 MySQL 的 root 用戶(hù)就不能隨便使用了,這時(shí)可以換成其它的驗(yàn)證方式,可以使用下面的命令進(jìn)行切換:
mysql長(zhǎng)時(shí)間不用,容易忘記密碼,怎么重置mysql密碼問(wèn)題就來(lái)了,當(dāng)然網(wǎng)上有n多種辦法,我這邊就簡(jiǎn)單記錄其中一種方法,便于自己和他人使用。
第一步:忘記密碼不要慌,先找到my.cnf配置文件,yum安裝一般都在/etc下,源碼安裝在安目錄下。
添加skip-grant-tables
第二步:重啟mysql
第三步:無(wú)碼進(jìn)入mysql,遇到需要輸入密碼回車(chē)即可。
第四步:重置root密碼
第五步: 將第一步的skip-grant-tables刪除,重啟mysql就ok了。
總結(jié):忘記mysql密碼重置偶爾會(huì)遇到,也不算難。網(wǎng)上五花八門(mén),為了方便,所以記錄在這里以備不時(shí)之需。喜歡我的文章記得關(guān)注哦????!
正確的姿勢(shì):
查詢(xún)當(dāng)前用戶(hù),確保有權(quán)限:
這樣的方式在mysql8下面會(huì)報(bào)錯(cuò):
僅是使用,就沒(méi)有詳細(xì)研究出錯(cuò)的原因,猜測(cè) mysql8 對(duì)安全級(jí)別要求更高了。
希望能幫助到遇到相同問(wèn)題的小伙伴。
如果你了解具體原因,也歡迎反饋。平時(shí)使用mysql5.7比較多,沒(méi)有遇到這么多問(wèn)題,最近升級(jí) mysql8 使用上發(fā)現(xiàn)和 mysql5.7 還是有不少差別的。
起因: 初始自動(dòng)生成的密碼太復(fù)雜了,并且粘貼過(guò)去登錄一直報(bào)錯(cuò),所以想直接修改密碼
過(guò)程:
還有些修改密碼的指令是這樣的,set password for ‘root’@‘localhost’=password(‘MyNewPass4!’); 也會(huì)報(bào)錯(cuò)
應(yīng)該是
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼' PASSWORD EXPIRE NEVER;