1、我们可以在/etc/my.cnf中在mysqld节点下新增一行代码(表示跳过密码直接登入mysql):
skip-grant-tables
2、修改my.cnf后重启mysql,并使用mysql命令登入数据库:
cd /opt/mysql/mysql-5.7.25/support-files/
./mysql.server restart
cd /opt/mysql/mysql-5.7.25/bin/
./mysql
先重载授权表,再执行修改密码语句:
先重载授权表,再执行修改密码语句:
-- 重载授权表
FLUSH PRIVILEGES;
-- 修改密码(版本不同,修改的语句不同)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
执行成功后,将my.cnf中新增的skip-grant-tables删除或注释,然后重启mysql,尝试账号密码登录:
注意:
如果执行修改命令报错:ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost',那么就进入mysql库下查看user表中root用户对应的Host是什么,然后参考截图执行修改(我这里是因为服务器开通了mysql对外访问权限,所以修改过root用户的Host):