【发布时间】:2018-06-09 18:09:24
【问题描述】:
我了解这是更改或重置 mysql root 密码的最安全方法。我这样做是因为 10 次中有 8 次安装程序不会提示我输入 root 密码。
所以我运行命令:
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &
sudo mysql -u root
use mysql;
然后,根据您使用的 mysql 或 maria 版本,您可以键入:
update user set password=PASSWORD("mynewpassword") where User='root';
或
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
就我而言,我输入了第一个。然后我通过以下方式刷新权限:
flush privileges; 然后我通过键入以下内容退出 mysql:quit。
此时一切顺利。然后我通过以下方式重新启动mysql服务器:
sudo /etc/init.d/mysql start
我从终端得到“OK”。但是,当我尝试以 root 身份登录时
我收到令人愉快的错误消息:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
我 100% 确信我输入了正确的密码。为什么会这样?
【问题讨论】:
-
为什么用第一种方法,第二种方法好像更安全。
-
正如我所说,第一种方法应该适用于我的 mysql 版本。我想我也可以尝试另一个,但它不应该工作。
-
是的,很难看出您可能做错了什么。但是,如果每次有人说他们 100% 确信自己输入的内容是正确的,我都会得到一分钱......
-
@Barmar 我认为我不会愚蠢到连续输入错误密码或拼错 5 次。
-
是哪个版本的?我曾经对 MySQL 5.7 感到惊讶。当我尝试使用
GRANT ... IDENTIFIED BY '*KDFJIED...'将用户复制到新服务器时。然后,令我惊讶的是,它构建了密码哈希的哈希值。
标签: mysql