MySQL 日志显示 3 个 root 用户,2 个没有密码?为什么?

Lot*_*her 6 mysql security

我们的 MySQL 日志在重新启动时显示了关于 2 个没有密码的 root 用户的警告。

我进入 MySQL 并检查了所有用户:

mysql> select * from mysql.user;
Run Code Online (Sandbox Code Playgroud)

并看到:

Host       |    User   |   Password
localhost       root      *76685yt868itetc
web12-b0        root
127.0.0.1       root  
Run Code Online (Sandbox Code Playgroud)

首先,为什么有 3 个 root 用户(因为我们有 localhost,所以我们需要 127.0.0.1)?

其次,为什么其中两个没有设置密码?

第三,web12-b0 和 127.0.0.1 主机是否具有完全的 root 访问权限而无需使用密码(如其所示)?

第四,这有什么正当理由还是我应该建议管理员将密码放在这两台主机上?

感谢您的回答。

Aar*_* R. 12

我知道这是一个旧线程,但我想补充几点:

首次创建数据库时,默认生成三个 root 用户。这些都是在没有密码的情况下创建的。这时候,安装还建议你通过运行设置密码mysqladmin -u root password,这会改变'root'@'%'的密码。

仍然没有密码的两个是本地主机列中指定的主机;在这两种情况下,它都是实际的数据库服务器。默认情况下,他们都拥有对数据库的完全访问权限。人们可能会正确地推测,在许多情况下,如果您能够首先登录到机器(这对于使用这些 root 帐户中的任何一个帐户都是必要的),那么您可能可以访问磁盘上的实际文件。因此,对这些设置密码可能不会产生任何真正的安全性。

话虽如此,我更喜欢删除这些默认帐户,并坚持使用密码帐户。

DELETE FROM mysql.user WHERE Password=''; FLUSH PRIVILEGES

  • 很好的补充,亚伦。但是有一件事......我相信以下命令有助于解决这个问题(虽然我不确定):/usr/bin/mysql_secure_installation (3认同)