我们的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服务器上没有密码的帐户。