前面这篇文章介绍的是忘记密码时报的Access denied for user ‘root‘@‘localhost‘ (using password: NO)这个错解决办法,Linux中登录MySQLAccess denied for user ‘root‘@‘localhost‘ (using password: NO/YES) (一)修改密码-CSDN博客
也就是直接修改密码。
本篇介绍改完密码以后用新密码登录也登不进去一直报Access denied for user ‘root‘@‘localhost‘ (using password: NO/YES)这个问题的解决办法
主要有以下步骤:
目录
5.用新密码登录
1.修改my.cnf配置文件,跳过密码认证
1.1打开my.cnf文档,一般都在/etc里面
输入vim /etc/my.cnf 或者vi /etc/my.cnf回车后
1.2在[mysqld]中添加 skip-grant-tables
拓展:
打开后,摁一下键盘的 i 键,进入编辑输入模式,输入skip-grant-tables之后点击Esc键,退出编辑模式,然后 输入 :wq ,即可保存退出(:wq是保存退出,:q!是不保存强制退出)
2.重启MySQL并登进去
2.1 重启MySQL
输入
service mysqld restart
或者
systemctl restart mysqld
2.2 登录MySQL,输入mysql -u root -p,并一直回车
3.问题解决过程
进入数据库以后,创建root用户,密码尽量负责一些,大小写字母,数字,特殊字符同时包含
create user 'root'@'localhost' identified by 'Abcdefg@123';
1.如果报mysql> ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement错
直接删除root
drop user 'root'@'localhost';
然后创建root
create user 'root'@'localhost' identified by 'Abcdefg@123';
然后进入下一步,如果没有报错直接进入下一步
赋予roott权限
赋予所有库所有表操作权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
刷新配置
flush privileges;
退出数据库
exit;
4.恢复my.cnf配置文件
输入vim /etc/my.cnf 或者vi /etc/my.cnf回车,
打开后,摁一下键盘的 i 键,进入编辑输入模式,删除skip-grant-tables之后点击Esc键,退出编辑模式,然后 输入 :wq ,即可保存退出(:wq是保存退出,:q!是不保存强制退出)
输入service mysqld restart,或者 systemctl restart msqld重启MySQL
登录MySQL,输入mysql -u root -p,并输入前面输入的密码
本盘文章用的密码是Abcdefg@123