在 Amazon EC2“Amazon Linux”实例上重置 MySQL 密码时出现问题

bra*_*ipt 2 mysql amazon-ec2

一直root在努力在 EC2 上托管的 Amazon Linux 上重置MySQL的密码。版本:

mysql Ver 14.14 Distrib 5.5.42, for Linux (x86_64) using readline 5.1

安装时,我认为将 root 密码更改为安全的密码是明智之举!好极了!安全!除了它现在不允许我使用该密码登录,所以我正在尝试重置它。

我按照这里的说明操作,但它不起作用。我认为这可能是对 init 文件的权限,但它们被设置为rwxrwxrwt可能不是,但也许?甚至不确定要检查哪些日志文件以查看哪里出错了。

那么,如何在 EC2 Amazon Linux 上成功重置 MySQL 密码?链接到的指令集是否应该起作用,还是亚马逊做了不同的事情?

也在 ServerFault 上问过这个问题,但“不清楚”我在问什么。我想说这在这里也相当离题,但是......

Gia*_*968 13

托管在 EC2 实例上的 Amazon Linux 没有什么神奇之处。每个人都使用 Linux 的某个变体的原因是因为 Linux 就是 Linux。

也就是说,root如果我遇到这样的麻烦,这就是我在 Ubuntu 服务器上重置 MySQL密码的方式。整体概念应该适用于任何版本的 Linux,只需进行一些小的调整来处理细节。

首先,我会像这样停止 MySQL;这是我将在 Ubuntu 上使用的命令:

sudo service mysql stop
Run Code Online (Sandbox Code Playgroud)

完成后,使用该--skip-grant-tables选项再次手动启动 MySQL ;这对于某些环境来说被认为是有风险的,因为它基本上启动 MySQL,并授予世界上每个人的所有授权/权限。但这是您需要做的来解决root问题:

sudo mysqld --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)

在某些设置中,您可能需要输入完整路径mysqldmysqld_safe使其像这样工作:

sudo /usr/bin/mysqld_safe --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)

现在随着 MySQL 重新启动,它的授权对世界开放,像这样登录:

mysql -u root mysql
Run Code Online (Sandbox Code Playgroud)

这基本上将您以用户root身份登录到mysql管理 MySQL 访问的所有管理方面的数据库。

现在运行这个查询;当然更改YOURNEWPASSWORD以匹配您要分配给root用户的所需新密码:

UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE user='root'; FLUSH PRIVILEGES; exit;
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这是一个连接命令,它运行UPDATE, 然后是FLUSH PRIVILEGES重新加载 MYSQL 授权表并使exit您退出 MySQL。

完成后,您应该全部设置并且root应该重置密码以匹配YOURNEWPASSWORD您更改的任何内容。