herohope 2020-03-08
mysql8忘记了root密码,需要修改
步奏:
1. <span> 从/etc/my.cnf 配置文件中加入skip-grant-table后正常登陆</span>
,把 localhost和user=root 的 authentication_string设置为空字符串
# systemctl restart mysqld # mysql -u root -p
mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> update user set authentication_string=‘‘ where user=‘root‘; mysql> select Host,User,authentication_string from user; +-----------+------------------+------------------------------------------------------------------------+ | Host | User | authentication_string | +-----------+------------------+------------------------------------------------------------------------+ | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | root | | +-----------+------------------+------------------------------------------------------------------------+ 4 rows in set (0.00 sec) mysql> flush privileges; mysql> exit
2. 把 <span>skip-grant-table 去掉 重启mysql后,这时候 用空字符串可以登录mysql了</span>
# systemctl restart mysqld # mysql -u root -pmysql>
3. 再修改密码
mysql> alter user ‘root‘@‘localhost‘IDENTIFIED BY ‘MyNewPas‘; mysql> flush privileges;
修改完成.