MySQL修改root密码的多种方法

说实话,说到修改MySQL root密码,我刚接手服务器时也遇到过同样的坑。
不同的方法对应不同的场景。
我会给你我自己的经验。

第一种方法是使用SETPASSWORD命令,这是最直接的方法。
例如,使用 mysql -u root 连接后,直接输入 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');。
请记住将密码括在引号中,括号是 SQL 语法的一部分。
我试过一次。
我是连接后直接改的。
它非常有效,但前提是你必须首先能够连接到root帐户。

第二种类型,mysqladmin 命令,是旧版本 MySQL 的遗留用法。
如果你的 root 密码为空(有些人确实这样做),只需 mysqladmin -u root 密码“newpass”。
如果您忘记了密码并且没有空白密码,则必须提供旧密码。
我没有尝试过这个,而且看起来很令人困惑。
当时我有一个客户使用了这个命令但是无法连接。
我花了很长时间才发现引号的使用不正确。
确实够了。

第三种方法是直接更改用户表。
这种方法是最暴力的,也是最激进的。
首先使用mysql -u root连接,然后使用mysql;切换到 mysql 数据库,最后 UPDATE user SET Password=PASSWORD('newpass') WHERE user='root';。
进行更改后,不要忘记删除隐私权;续订权。
我试了一次,因为忘记了旧密码,所以直接用这个命令改了,确实能连上。
然而,更改后,我发现数据库访问丢失了。
然后我添加了授予所有权限。
TO 'root'@'localhost' 由 'newpass' 识别;来恢复它。

第四个操作,也是最烦人的,是在忘记密码的时候使用的。
首先使用mysqld_safe --skip-grant-tables启动MySQL服务。
该命令将跳过检查级别表。
服务结束后,使用mysql -u root 进行连接。
此时,您甚至不需要输入旧密码即可更改密码。
您可以直接更新用户 SET Authentic_string=PASSWORD('newpassword') WHERE user='root'; (请注意,MySQL 5 .7 及更高版本使用身份验证链)。
更改 FLUSH PRIVILEGES; 后,重新启动 MySQL 服务。
我尝试过这个方法,确实可以解决忘记密码的问题,但是使用后总感觉没有安全感,感觉自己绕过了系统安全机制,尽管官方说这是合法的行为。

注意事项:更改密码前请记得备份数据。
我有一个朋友在更改密码后删除了论坛。
这是一场悲剧。
另外,MySQL版本更新后,命令和字段可能会发生变化。
比如我上面只提到的认证链MySQL 5 .7 之后可用。
因此,在进行更改之前最好检查您正在使用的 MySQL 版本。

我已经尝试了所有这些方法,每种方法都有其各自的好处。
使用哪一种取决于你自己的情况。

mysql 给root设置密码

说起来,我之前也遇到过设置MySQL root密码的问题,而且很棘手。
记得有一次我搭建了一个新的服务器,想给MySQL root账户设置一个密码。
然而却常常失败,这让我很生气。

首先需要登录MySQL控制台,在终端中输入sudomysql,然后输入当前root用户的密码。
如果您之前没有设置过密码,请直接登录。
因为忘记了 root 密码,我被困在这里很长一段时间。

然后进入控制台后,我按照互联网上的 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password'; 进行操作。
结果我的 MySQL 版本根本不支持这个命令。
我当时用的是5 .5 版本,mysql_native_password插件当时还不流行。

后来得知必须使用mysql_native_password插件,于是我将其改为ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password',这次就成功了。
However, I forgot to renew the permissions.设置密码后,仍然无法连接MySQL。
I got so angry I slapped the table.
终于学会了从控制台注销并登出,完成密码修改。
This time it was finally finished.
当谈到密码安全规则时,我以前遇到过很多陷阱。
比如我之前设置了一个1 0位的密码,里面全是数字,但是有人猜到了。
后来我了解到密码必须包含字母、数字和符号,并且长度必须至少1 0个字符。

过去我也曾在键盘上使用过生日或序列号,这很容易给分。
后来我改了,用了一些随机的符号和字母,还添加了一些英文字母,这样密码就更安全了。

另外,我不知道我必须定期更改密码,但我的密码被泄露了。
我很抱歉。
现在,我每隔几个月更改一次密码,并使用名为 1 Password 的密码管理工具,这样我就不必记住那么多复杂的密码。

总之,设置MySQL root密码应该循序渐进,同时也要注意密码安全,以免陷入我之前的陷阱。