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