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'。
答案 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 即使你最终分成两个不同的应用程序和数据服务器。