在MySQL中,root@'my.host'和root@'127.0.0.1'的目的是什么?

时间:2012-09-20 23:34:17

标签: mysql

Centos6上的Mysql(和其他发行版iirc)初始化多个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'?我认为所有本地连接都被解释为来自'localhost'。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

现在当php尝试访问MySQL时,如果它的apache系统运行php,他的请求将是 root @ localhost 。这很好!现在如果Greg试图去做呢?他的请求是 root@www.gregsblog.com 。这也很好,因为我们不希望黑幕Greg进入我们的数据库。

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