Ubuntu下MySQL8.0报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 


问题

在Ubuntu下,想要登录mysql数据库

root@lgl:~# mysql -uroot -p

 

报错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

导致登录数据库不成功

解决方案

这种问题一般是密码错误,如果忘记了密码, 我们需要修改密码

打开文件

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

 

找到[mysqld]段,并加入一行“skip-grant-tables”,跳过权限验证

 

[mysqld]
...
...
skip-grant-tables

 

输入:wq保存并退出

重启数据库服务

service mysql restart

 

进入数据库,免密码

mysql -uroot -p

 

直接enter就可以进入, 首先刷新一下权限

flush privileges;
 

修改密码

ALTER user 'your username'@'localhost' IDENTIFIED BY 'your new password';

如果正常的话这里修改密码就成功了,失败的话看最后。

 

返回注释掉“skip-grant-tables”,重启mysql 即可

service mysql restart

 

可能出现的问题

修改密码时报错:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

 

在这里插入图片描述
mysql安装了validate_password密码校验插件,导致要修改的密码不符合密码策略的要求。

解决方案

查看当前的密码策略是:

SHOW VARIABLES LIKE 'validate_password%';

 

在这里插入图片描述

  • validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 决定是否使用该插件(及强制/永久强制使用)。
  • validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。
  • validate_password_length:密码最小长度。
  • validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。
  • validate_password_number_count:密码至少要包含的数字个数。
  • validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
  • validate_password_special_char_count:密码至少要包含的特殊字符数。 其中,关于validate_password_policy-密码强度检查等级: 0/LOW:只检查长度。 1/MEDIUM:检查长度、数字、大小写、特殊字符。 2/STRONG:检查长度、数字、大小写、特殊字符字典文件。

 

按上面的密码要求,输入符合规则的密码;

 
posted @   r1-12king  阅读(920)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
历史上的今天:
2022-02-28 java中的类加载原理
2022-02-28 java 中的intern()方法
点击右上角即可分享
微信分享提示