在经过这类命令尝试后发现仍然失败报错
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
其实需要删除root用户,重新创建一个,步骤如下:
关闭MySQL服务
[root@LinuxMySQL ~]# service mysql stop
修改my.cnf文件
[root@LinuxMySQL ~]# vim /etc/my.cnf
在[mysqld]下添加如下内容:
skip-grant-tables
保存退出
重新启动mysql服务
[root@LinuxMySQL ~]# service mysql start
输入命令登录mysql,输入密码时直接按enter键
[root@LinuxMySQL ~]# mysql -uroot -p
Enter password:
后续执行修改密码流程
- 修改密码
切换到 mysql 数据库
mysql> use mysql;
drop掉root用户
mysql> drop user 'root'@'localhost';
创建用户
mysql> create user 'root'@'localhost' identified by '123456';
给用户授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@localhost WITH GRANT OPTION;
执行刷新命令
flush privileges;
退出mysql页面:
mysql> quit;
Bye
重新进去会发现需要输入密码,此时输入我们修改后的密码就可以登录MySQL