原博写的更细致,严谨。本文在此之上略微补充两条指令。
发现问题:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
如图
一般出现这种情况多数是安装新版本mysql,root密码是随机的,也不是空密码,所以要通过查看随机密码进入,再进行修改原来的密码。
解决方法:
1 、其它用户登录MySQL:
sudo cat /etc/mysql/debian.cnf
然后使用该用户名和密码进入MySQL:
mysql -udebian-sys-maint -p

2 、查看user表
在mysql中输入指令:
use mysql;
查询用户:
select user,plugin from user;

3 、修改root密码格式
修改其密码格式 :
update user set plugin='mysql_native_password' where user='root';
查询其用户 :
select user,plugin from user;
刷新权限:
flush privileges;
修改密码
设置密码长度最低位数:
set global validate_password_length=4;
设置密码安全等级低:
set global validate_password_policy=LOW;
4 、增加root密码
修改root账号密码:(12345为自定义密码)
alter user 'root'@'localhost' identified by '12345';
再次刷新权限
flush privileges;
退出登录
exit
5 、重启mysql服务
输入登录密码重启服务:
service mysql restart
