- 首先查看 root 用戶相關(guān)信息,在 mysql 數(shù)據(jù)庫(kù)的 user 表中:
select host, user, authentication_string, plugin from user;
host:允許用戶登錄的ip‘位置’%表示可以遠(yuǎn)程;
user:當(dāng)前數(shù)據(jù)庫(kù)的用戶名见秽;
authentication_string:用戶密碼牵敷;在mysql 5.7.9以后廢棄了password字段和password()函數(shù)提茁;
plugin:密碼加密方式;
如果發(fā)現(xiàn) root 用戶的 authentication_string 字段下有內(nèi)容,先將其設(shè)置為空:
use mysql;
update user set authentication_string='' where user='root';
- 重啟 mysql 服務(wù),mac 里直接命令把服務(wù)關(guān)閉:
mysql.server stop
或者把 mysql 進(jìn)程 kill 掉碌更。然后在啟動(dòng) mysql 服務(wù):
mysql.server start
- 用 root 用戶登錄,因?yàn)橐呀?jīng)把 authentication_string 設(shè)置為空洞慎,所以可以免密碼登錄:
mysql -u root -p
passwrod:
不需要輸入密碼痛单,直接回車(chē)即可
- 進(jìn)入 mysql 庫(kù),使用 ALTER 修改 root 用戶密碼:
ALTER user 'root' IDENTIFIED BY '123456' ;
語(yǔ)句中的 root 需要跟你實(shí)際 user 表里 root 用戶存的是 root 還是 root@localhost 而定劲腿,由于我這里把密碼改成了 123456 這樣比較簡(jiǎn)單的格式旭绒,可能 mysql 8 默認(rèn)密碼策略不允許,非要改的話可以先修改一下密碼策略:
set global validate_password.length = 6 ;
set global validate_password.policy = 'LOW';
FLUSH PRIVILEGES;
這里把密碼長(zhǎng)度由默認(rèn)的8位改成了6位焦人,并且密碼策略級(jí)別由 MEDIUM 改成了 LOW挥吵。如果要查看密碼校驗(yàn)相關(guān)設(shè)置的話可以直接查詢系統(tǒng)變量:
SHOW VARIABLES LIKE 'validate_password.%';