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

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

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

mysql> select * from mysql.user; 

并看到:

 Host | User | Password localhost root *76685yt868itetc web12-b0 root 127.0.0.1 root 

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

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

第三,web12-b0和127.0.0.1主机是否具有完全的根访问权限,而不必使用密码(如出现)?

第四,是否有一些有效的理由,或者我应该build议pipe理员把密码放在这两台主机上?

感谢您的回答。

我知道这是一个古老的线索,但我想补充几点:

首次创build数据库时,默认会生成三个root用户。 这些都是没有密码的。 此时,安装还build议您通过运行mysqladmin -u root password设置mysqladmin -u root password ,该mysqladmin -u root password将更改“root”@“%”的密码。

这两个仍然没有密码的本地主机列中指定的主机; 在这两种情况下,都是实际的数据库服务器。 他们都可以完全访问数据库默认情况下。 有人可能会正确地猜测,在许多情况下,如果您能够login到机器(这将需要使用这些根帐户中的任何一个),那么您可能有权访问磁盘上的实际文件。 所以有这些密码可能不会产生任何真正的安全。

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

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

首先,为什么有3个root用户

因为有人添加了三个root用户。

(我们需要127.0.0.1,因为我们有localhost)?

在MySQL本地主机和127.0.0.1是根本不同的。 MySQL中的主机“localhost”意味着“使用unix套接字进行本地连接”。 127.0.0.1主机意味着“使用TCP连接通过回环接口”。

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

因为没有人为他们设置密码。

第三,web12-b0和127.0.0.1主机是否具有完全的根访问权限,而不必使用密码(如出现)?

您提供的信息不足以回答此问题。 MySQL中用户的存在意味着除了USAGE (连接的能力)以外没有其他权限。 要查看用户的权限,您必须使用:

 SHOW GRANTS FOR user@host; 

第四,是否有一些有效的理由,或者我应该build议pipe理员把密码放在这两台主机上?

我build议不要在你的MySQL服务器上没有密码的帐户。