修改mysql8.0用户认证方式为mysql_native_password,导致密码一直错误,也无法更改密码的办法。
MySQL 8.0认证方式修改问题解决方案:当将认证方式改为mysql_native_password后出现密码错误时,可采取以下步骤: 停止MySQL服务 以跳过权限表方式启动MySQL 清空root用户密码 重启服务后重新登录 修改密码并设置认证方式为mysql_native_password 该方法适用于因认证方式变更导致无法登录的情况,特别是Python环境缺少cryptography包时
·
修改mysql8.0用户认证方式为mysql_native_password,导致密码一直错误,也无法更改密码的办法。
因公司项目特殊性,使用python部署离线环境后,链接mysql8.0时提示缺少cryptography安装包
原因是:MySQL服务器配置了caching_sha2_password认证方式(MySQL 8.0+的默认认证方式)
但是Python环境中缺少cryptography包,这是PyMySQL处理这种认证方式所必需的依赖。
这个时候离线环境重新打包再导入就很麻烦了。故就修改了mysql认证方式,修改之后所有客户端全部断联,账户密码错误,修改密码还挺提示operation alter user failed for root@localhost’
这里给出整体的解决方案:
mysql命令根据你安装时配置不同,调用的名称也不相同,有的叫mysqld、mysql80、mysql8等等等等,你可以去服务里查看。
- 停止mysql
net stop mysql - 执行命令启用跳过密码登录mysql
mysqld --console --skip-grant-tables --shared-memory - 进入mysql依次执行下方命令
use mysql;
update user set authentication_string='' where user='root';
quit;
net start mysql
mysql -u root -p
- 到此应该可以直接进入mysql了,你也可以使用各种可视化管理工具进行测试。
- 修改mysql密码及认证方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
quit;
更多推荐
所有评论(0)