From: http://ordinarysky.cn /? P = 431
What is the difference between localhost and 127.0.0.1? I believe some people will say it is a local IP address. Some people once said that 127.0.0.1 is better than localhost, and it can reduce resolution once. It seems that there are still some people who are not clear about this entry question. In fact, there is a difference between the two.
No1:
Localhost is also called local. The correct explanation is: local server
127.0.0.1 in windows and other systems, the correct explanation is: local address (local server)
Their parsing uses the host file of the local machine, and Windows automatically resolves localhost to 127.0.0.1
NO2:
Localhot (local) is transmitted without a Nic! This is important because it is not restricted by network firewalls and network adapters.
127.0.0.1 is transmitted through the NIC and depends on the NIC. It is subject to network firewall and nic restrictions.
The IP address of the local machine is also transmitted through the NIC, which depends on the nic and is restricted by the network firewall and nic.
However, the difference between the local IP address and 127.0.0.1 is:
127.0.0.1 can only be accessed from the Local Machine
The local IP Address can also be accessed through the local host.
Generally, it is best to use localhost for local services when setting a program. localhost will not be resolved to an IP address, nor will it occupy Nic or network resources.
Sometimes you can use localhost, but you cannot use 127.0.0.1. This is the case. Assume that when localhost is accessed, the current user's permissions on the local machine are used to access the local machine. When an IP address is used, the local machine accesses the local machine through the network and the network user's permissions are used.
Instance:
1. Use TCP/IP to connect to MySQL-H 127.0.0.1,
MySQL Server considers the connection from 127.0.0.1 or "localhost. localdomain"
2. When mysql-H localhost is used, UNIX socket is used instead of TCP/IP connection;
MySQL Server considers the client to be from "localhost"
3. "localhost" in MySQL permission management has specific meanings:
-- MySQL manual 5.6.4 ..... A host value may be a hostname or an IP number, or 'localhost' to indicate the local host.
Note: although there are differences between the two connection methods, when localhost is 127.0.0.1 by default, the permission records used by the two connection methods are the following 1. row record (because the record is first matched)
* *************************** 1. row ***************************
HOST: localhost
User: Root
......
* *************************** 2. row ***************************
HOST: 127.0.0.1
User: Root
Proof:
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