MySQL数据库修改authentication_string字段为显示密码后无法登录
- 1. 本文创作背景
- 2. 问题
- 3. 原因分析
- 4. 解决方案
- 5. 附录
1. 本文创作背景
本文介绍MySQL数据库修改authentication_string字段为显示密码后无法登录的处理办法。
2. 问题
用户通过navicat修改MySQL的user表root帐号的“authentication_string”字段,修改为为显示密码后无法登录客户端。
3. 原因分析
修改密码方式错误,不应直接改user表的authentication_string字段的hash key,需要通过控制台重置root密码方式修改。
错误修改密码方式案例:
update mysql.user set authentication_string = 'new_password' where user = 'root';
另外老版本mysql修改密码可以用以下代码,新版本mysql已经不支持PASSWORD函数。
update mysql.user set authentication_string = PASSWORD('new_password') where user = 'root';
4. 解决方案
由于8.0版本不支持password函数,因此需要通过以下步骤恢复authentication_string :
找出帐号的authentication_string字段,看看其他用户的authentication_string,使用以下命令将authentication_string改回来
update mysql.user set authentication_string='XXX' where user = 'root';
之后再用正确的改密方式重置root帐号密码。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'XXX';
flush privileges;
修改后用户就可以正常登录root帐号。
5. 附录
- 查询mysql连接数量
- 解决pymysql不能实时查询最新的数据
- Linux中mysql的安装|配置|操作|卸载
- 联合索引、索引覆盖和索引下推详解
- PyMySQL 使用笔记