使用–skiptables重置MySQL8root用户的密码

如果您忘记或丢失了MySQLroot用户密码,您需要一种方法来恢复它。
我们需要知道的是密码存储在用户表中。
这意味着我们需要找到一种方法来绕过MySQL身份验证,以便我们可以更新密码记录。
幸运的是,有一个简单的实现方法,本教程将引导您完成在MySQL8.0版本中恢复或重置root用户密码的过程。
根据MySQL文档,有两种方法可以重置root用户的密码。
一种方法是使用--skip-grant-tables选项启动MySQL服务。
这不太安全,因为当以这种方式启动服务时,所有用户都可以在没有密码的情况下进行连接,但这种方法更容易,我们将首先看看这种方法。
如果服务器以--skip-grant-tables启动,则自动启用--skip-networking选项,因此远程连接将不可用。
首先停止MySQL服务并使用--skip-grant-tables选项启动MySQL服务然后,您可以运行mysq来连接到mysql服务器。
由于使用--skip-grant-tables选项启动服务时帐户管理被禁用,因此我们需要重新加载授权。
这样我们就可以稍后更改密码:现在我们可以运行以下查询来更新密码。
确保将“new_password”更改为您要使用的实际密码。
现在停止MySQL服务器并正常启动。
现在使用新密码再次连接MySQL,启动mysqld如果遇到如下错误,找到文章参考文献2和3提供了各种可能性通过查询可以看到确实有mysqld服务没有关闭,但是之前我关闭mysql,我不知道发生了什么。
mysql只能通过kill命令杀死

mysql8修改密码

原因:最初自动生成的密码太复杂,粘贴登录时一直报错,所以想直接修改密码。
还有更改密码的说明,例如setpasswordfor'root'@'。
localhost'=密码('MyNewPass4!');它还会报告一个错误,应该是ALTERUSER'root'@'localhost'IDENTIFIEDBY'newpassword'PASSWORDEXPIRENEVER;

MYSQL8.0以上版本正确修改ROOT密码

部署环境是RedHatCent7.0系统,安装的MySQL版本是8.0.2.0。
部署完成后,遇到了root账户无法正常登录服务的问题。
从/etc/my.cnf配置文件中添加skip-grant-table后,我可以正常登录数据库,但无法执行许多任务,形成无限循环。
尝试了几种方法后,我发现MySQL8.0及以上版本的密码策略和更新语法与以前不同。
修改root密码时,需要满足密码复杂度要求,包括大小写字母、数字、特殊符号的组合。
通过编辑MySQL配置文件、停止和启动MySQL服务、无密码进入数据库、更改root密码、刷新权限表,最终成功更改root密码。
使用“MyNewPass@123”。
创建新用户时,必须遵循密码复杂度要求,并使用“MyNewPass@123”作为密码,这是MySQL8.0版本中要求的。
使用SQLyog等SQL工具进行远程连接,需要修改mysql_native_password函数的密码才能访问远程连接。
使用root用户帐户添加新用户、授权和远程连接。
综上所述,MySQL8.0版本引入了更严格的安全策略,用户密码必须包含大写字母、数字和特殊字符,并且密码策略进行了不同的修改和它适用。
在实践中,遵循这些规则并正确执行相应的命令是解决问题的关键。