`

localhost 和 127.0.0.1的区别

 
阅读更多

转自:http://hudeyong926.iteye.com/blog/1104249大神的博客都应该去逛下

localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。 看来这个入门问题还有人不清楚,其实这两者是有区别的。

no1:

localhost也叫local ,正确的解释是:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)

no2:

localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。

127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。

 

一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。

有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。

 

他家之言:

1. mysql -h 127.0.0.1 的时候,使用TCP/IP连接,
mysql server 认为该连接来自于127.0.0.1或者是"localhost.localdomain"

 

2. mysql -h localhost 的时候,是不使用TCP/IP连接的,而使用Unix socket;
此时,mysql server则认为该client是来自"localhost"

 

3. mysql权限管理中的"localhost"有特定含义:
—— MySQL手册 5.6.4 ..... A Host value may be a hostname or an IP number, or 'localhost' to indicate the local host.

 

注意:虽然两者连接方式有区别,但当localhost 为默认的127.0.0.1时,两种连接方式使用的权限记录都是以下的1.row的记录(因为记录在前,先被匹配)

*************************** 1. row ***************************
Host: localhost
User: root
......

*************************** 2. row ***************************
Host: 127.0.0.1
User: root

 

证明:


shell> mysql -h 127.0.0.1
mysql> status;

Current user:root@127.0.0.1

SSL:Not in use
Current pager:stdout
Using outfile:''
Using delimiter:;
Server version:5.1.33-log Source distribution
Protocol version:10
Connection: 127.0.0.1 via TCP/IP


shell> mysql -h locahost
mysql> status;

Current user:root@localhost
SSL:Not in use
Current pager:stdout
Using outfile:''
Using delimiter:;
Server version:5.1.33-log Source distribution
Protocol version:10
Connection: Localhost via UNIX socket

 

shell> mysql -h XXXX(ip)

mysql> status;

Current user:root@ip

SSL:Not in use
Current pager:stdout
Using outfile:''
Using delimiter:;
Server version:5.1.33-log Source distribution
Protocol version:10
Connection: XXXX(ip) via TCP/IP

分享到:
评论

相关推荐

    localhost和127.0.0.1的区别

    详解localhost和127.0.0.1的区别

    mysql不能用localhost,127.0.0.1连接,只能用ip连接 的解决方法

    在MySQL数据库系统中,连接方式通常分为通过主机名(如localhost)和IP地址(如127.0.0.1)两种。当你遇到“mysql不能用localhost,127.0.0.1连接,只能用ip连接”的问题时,这可能是由于MySQL配置文件中的设置或用户...

    Win7下localhost与127.0.0.1的区别.docx

    Win7下localhost与127.0.0.1的区别.docx

    mysql_connect localhost和127.0.0.1的区别(网络层阐述)

    总结起来,`localhost` 和 `127.0.0.1` 在MySQL连接中的主要区别在于它们使用的通信机制,`localhost` 通过Unix域套接字实现高效本地通信,而 `127.0.0.1` 则使用TCP/IP协议栈,适合远程访问场景或跨网络通信。...

    php mysql localhost,127.0.0.1和ip区别

    localhost与127.0.0.1的区别localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。看来这个入门问题还有人不清楚,其实这两者是有区别的。 no1: ...

    route -f清除路由表,导致localhost和127.0.0.1不能访问的解决方法

    本文将介绍route命令在清除路由表后,导致无法访问localhost和***.*.*.*(回环地址)的解决方法。 首先,需要了解route命令及其功能。route命令允许用户手动配置和修改IP路由表,其主要选项有add(添加)、change...

    127.0.0.1和localhost地址知识详解.docx

    127.0.0.1和localhost地址知识详解.docx

    解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题

    Vue项目不能使用localhost:8xx0进入项目,但是将localhost替换为127.0.0.1却可以进入。 解决办法: 进入文件 C:\Windows\System32\drivers\etc\hosts 用记事本打开 hosts 文件进行编辑,看看文件里是否有 127.0.0.1...

    MySQL数据库主机127.0.0.1与localhost区别

    MySQL数据库在配置和使用过程中,有时会遇到主机名设置为`127.0.0.1`或`localhost`的区别。这两个概念虽然都代表本地主机,但在连接MySQL数据库时,它们之间存在微妙的差异。 首先,`127.0.0.1`是一个特殊的IP地址...

    完美解决MySQL通过localhost无法连接数据库的问题

    问题:一台服务器的PHP程序通过localhost地址无法...大部分情况下,可以用localhost代表本机127.0.0.1,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。当设置为127.0.0.

    ASP本地调试工具,127.0.0.1

    标题中的"ASP本地调试工具,127.0.0.1"表明这个工具是为在本地计算机上运行ASP应用并使用localhost(127.0.0.1)进行调试而设计的。127.0.0.1是一个特殊的IP地址,代表本地环回接口,通常用于指向本机的网络服务。 ...

    解决127.0.0.1需要用户名和密码,提示无法访问和没有权限方案

    在IT领域,尤其是在Web开发与服务器配置过程中,遇到本地主机(即127.0.0.1或localhost)访问时需要输入用户名和密码,甚至出现没有权限访问的情况,是一个常见的挑战。本文将深入探讨这一问题,结合IIS5.1环境下的...

    hadoop运维经验分享

    2012年华东运维技术大会上分享的"Hadoop运维经验"涵盖了Hadoop生态系统中的多个关键方面,旨在帮助IT专业人士更好地管理和优化大规模数据处理环境。以下是对这些运维经验的详细解读: 1. **集群规划与搭建**:...

    Mac os 解决无法使用localhost连接mysql问题

    在Mac OS系统中,当你遇到无法使用`localhost`连接到MySQL数据库的问题时,这通常涉及到网络连接机制和系统配置的差异。在这个问题中,我们发现`localhost`与`127.0.0.1`在连接MySQL时表现不同,这是因为它们采用的...

    java jdbc 数据库 mysql oracle pgsql 驱动

    dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。 port –为数据库的监听端口,需要看安装时的配置,缺省为1521。 databasename –为数据库的SID,通常为全局数据库的名字。 SQL Server...

    localhost导致MQTT本地客户端与本地broker无法连接问题

    今天在调试时发现一个localhost问题: #define EMBER_AF_PLUGIN_TRANSPORT_MQTT_BROKER_ADDRESS tcp://localhost:1883 ...#define EMBER_AF_PLUGIN_TRANSPORT_MQTT_BROKER_ADDRESS tcp://127.0.0.1:1883 #define EM

Global site tag (gtag.js) - Google Analytics