1. localhost、IP

localhost

localhost 代表了本主机,通过使用localhost可以访问自己主机的网络服务,http://localhost,将会显示运行这个浏览器的计算机上所服务的网站的主页。使用localhost的时候,使用的是回环网络接口,这会绕过本地网络接口硬件,独立于任何网络配置(不受网络防火墙和网卡相关的的限制)
windows 将 localhost 解析为 127.0.0.1(IPv4)、 ::1 (IPv6)

localhost 与 127.0.0.1 的区别

localhost 		正确的解释是  本地服务器
127.0.0.1 		正确的解释是  本机地址(本机服务器)
localhot 		不经网卡传输,它不受网络防火墙和网卡相关的的限制。
127.0.0.1		通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制

IP

IP地址是由网络地址与主机地址两部分所组成

网络地址

网络地址可用来识别设备所在的网络,网络地址位于IP地址的前段。当组织或企业申请IP地址时,所获得的并
非IP地址,而是取得一个唯一的、能够识别的网络地址。同一网络上的所有设备,都有相同的网络地址。IP路
由的功能是根据IP地址中的网络地址,决定要将IP信息包送至所指明的那个网络。

主机地址

主机地址位于IP地址的后段,可用来识别网络上设备。同一网络上的设备都会有相同的网络地址,而各设备之
间则是以主机地址来区别。

2. 本地连接与IP连接

MySQL有两种连接方式,一种是网络监听TCP/IP端口的模式,还有一种是socket模式。

  • socket模式
    在Linux下,socket是一种特殊的文件,也叫做套接字,是应用层与TCP/IP协议族通信的中间软件抽象层。虽然性能会比较好,但是这种socket模式仅限本机使用,其他机器无法通过网络链接连接到socket文件
  • TCP/IP端口模式
    这个就是为了让远程的应用连接到MySQL数据库的服务。
    在MySQL配置中mysqld节中,可以设置绑定的对应的IP和端口,需要重启服务

如果有使用-h指定主机的都是使用远程登录的方式,如果没有就是使用socket的方式

  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。此时,mysqlserver则认为该 client 是来自 localhost
  3. mysql权限管理中的"localhost"有特定含义:
    注意:虽然两者连接方式有区别,但当localhost为默认的127.0.0.1时,两种连接方式使用的权限记录都是以下的1.row的记录(因为记录在前,先被匹配)