ERROR 1698 (28000): Access denied for user 'root'@'localhost'

1
2
3
$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

解决方法一:

在文件/etc/mysql/my.cnf 中添加

1
2
[mysqld]
skip-grant-tables

重启mysql,搞定!

解决方法二:

使用sudo mysql进入到mysql

1
alter user 'root'@'localhost' identified with mysql_native_password by '密码';

假如你安装的是MariaDB,上面指令中的with可以用,也可以要改为 via

1
alter user 'root'@'localhost' identified via mysql_native_password by '密码';

  或者分解为

1
2
3
alter user 'root'@'localhost' identified via mysql_native_password;
 
alter user 'root'@'localhost' identified by '密码'

如果密码设置的过于简单,会出现以下错误

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

设定好密码后,再修改密码设定规则,改为简单的设置规则

1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.02 sec)
1
2
3
4
5
mysql> set global validate_password.length=4;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

就可以把密码设置成’1234'这一类比较简单的了

  

 

posted @   华小电  阅读(588)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示