0

Centos6(和其他发行版 iirc)上的 Mysql 初始化多个 root 用户(其中​​ host.domain 是我的主机名):

select User,Host,Password from mysql.user where User = 'root';

+------+-------------+-------------------------------------------+
| User | Host        | Password                                  |
+------+-------------+-------------------------------------------+
| root | localhost   | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | host.domain | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | 127.0.0.1   | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+------+-------------+-------------------------------------------+

我不明白 root@'host.domain' 和 root@'127.0.0.1' 条目的用途。在什么情况下,本地主机连接的主机不是“本地主机”?我认为所有本地连接都被解释为来自'localhost'。

4

3 回答 3

0

您使用 root@localhost 与 root@remoteipaddress。它们用于远程主机访问,因此其他服务器可以连接到您的数据库。

于 2012-09-21T02:29:42.353 回答
0

好吧,如果您愿意,可以编辑 etc/hosts 并将 localhost 设置为 127.0.0.1 以外的其他内容。

于 2012-09-20T23:47:22.083 回答
0

如果您运行一个虚拟主机,您的 apache 服务器可能会在同一台服务器上托管多个域。在这种情况下,127.0.0.1 指向多个域。例如,/etc/hosts 可能看起来像这样。

127.0.0.1    localhost    www.gregsblog.com    www.dannisrecipes.org    www.schoolofsql.edu

现在当 php 尝试访问 MySQL 时,如果它是运行 php 的 apache 系统,他的请求将是root@localhost。这很好!现在,如果格雷格试图达到它怎么办?他的请求是root@www.gregsblog.com。这也很好,因为我们不希望可疑的 Greg 进入我们的数据库。

如果您移动主机, host.domain只会使 IMO 变得更容易。所以root@host.domain即使您最终分成两个不同的应用程序和数据服务器。

于 2012-09-21T00:30:48.297 回答