MySQL主机:localhost与127.0.0.1、本机ip区别总结

softyun3年前主机评测125

mysql主机的127.0.0.1和localhost、本机ip地址有什么区别?

可能有很多朋友都会碰到一个问题不知道127.0.0.1与localhost有什么区别,但是有的时间会发现使用localhost连接不了,但是改成127.0.0.1即可了连接了,那么他们会有什么区别呢,下面我给大家介绍。

localhost、127.0.0.1 和本机ip之间的区别:

1、localhost等于127.0.0.1,不过localhost是域名,127.0.0.1是IP地址。

2、localhost和127.0.0.1不需要联网,都是本机访问。

3、本机IP需要联网,本机IP是本机或外部访问, 本机 IP 就是本机对外放开访问的IP地址,这个网址就是与物理网卡绑定的IP地址。

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

*************************** 1. row ***************************Host: localhostUser: root……*************************** 2. row ***************************Host: 127.0.0.1User: root

证明:shell mysql -h 127.0.0.1mysql status;Currentuser: root@localhostSSL: Notin useCurrent pager: stdoutUsing outfile: ”Using delimiter: ;Server version: 5.1.33-log Source distributionProtocol version: 10Connection: 127.0.0.1 via TCP/IPshell mysql -h locahostmysql status;Currentuser: root@localhostSSL: Notin useCurrent pager: stdoutUsing outfile: ”Using delimiter: ;Server version: 5.1.33-log Source distributionProtocol version: 10Connection: Localhost via UNIX socket

发现问题

昨天在帮同事编译安装Linux环境时,遇到一个问题:

Web服务器是apache,数据库是MySQL。

于是写了一个测试连接数据库的PHP页面:

$mysql = mysql_connect(‘localhost’,’root’,”);

打开 http://localhost/test.php 测试

提示:Can’t connect to local MySQL server through socket…

检查环境正常

以为是数据库没有启动,于是查看一下进程,MySQL在进程里,重启了一下MySQL.

使用mysql -u root -p可以进入MySQL操作界面

直接使用/usr/local/php5/bin/php /web/test.php执行可以连上数据库

apache也重启了,一样无效

疑点:为何网页执行失败,命令执行却成功

这下就郁闷了,使用php命令直接执行就成功,通过网页执行就失败。难道是apache导致?网上搜索了大堆资料也没找到解决方案,重新编译安装apache问题依旧。

把localhost改成127.0.0.1成功

把localhost改成127.0.0.1后竟然连接成功了,开始陷入思考困局:localhost失败127.0.0.1却成功?

ping localhost 地址是127.0.0.1没错

打开hosts加入

127.0.0.1 qttc

使用qttc当主机连接也正常,唯独就不认localhost。

localhost连接方式不同导致

为了了解PHP连接数据库时,主机填写localhost与其它的区别阅读了大量资料,最后得知:

当主机填写为localhost时mysql会采用 unix domain socket连接

当主机填写为127.0.0.1时mysql会采用tcp方式连接

这是linux套接字网络的特性,win平台不会有这个问题

解决方法

在my.cnf的[mysql]区段里添加

protocol=tcp

保存重启MySQL,问题解决!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

淘宝服务器机房:探究电商巨头背后的无声力量

摘要:本文将介绍淘宝服务器机房揭示电商巨头背后的无声力量。在引出读者兴趣的同时提供了背景信息作为铺垫。图片:一、服务器机房介绍淘宝服务器机房是淘宝平台的核心部分它承载着数以亿计的用户和商家的交易。机房...

不备案.com域名可以用吗(不备案.com域名可以用吗)

不备案域名可以用吗及不备案域名可以用吗在互联网时代,域名是企业和个人展示自己品牌形象的重要工具。备案是指在国家相关部门进行网站备案登记,以确保网站的合法性、安全性和可靠性。所以,即使没有备案,只要你拥...

国内的英文(国内的英文怎么说)

国内的英文及国内的英文怎么说随着中国经济的发展和全球化进程的加速,英文在中国的使用越来越普遍。尤其是在商务、教育等领域中,英文已成为必备技能。但是,在国内的英文使用中,也存在一些问题。由于语言环境和文...

vps租用 国内(vps租借)

VPS租用是一种越来越受欢迎的网络服务,它能够为用户提供高效稳定的虚拟主机环境。在国内,有许多公司提供VPS租赁服务,如阿里云、腾讯云等。首先,我们来了解一下国内的VPS租用情况。在国内,VPS租用市...

美国服务器适用什么企业建站使用

美国服务器适用什么企业建站使用建立网站是一个企业向全球推广其品牌、产品和服务的重要方式。选择适合自己的服务器和主机可以很大程度上影响网站的访问速度和用户体验。对于许多企业来说美国服务器常常是很好的选择...

tudcloud:双十一优惠,全年最低价,香港vps终身5折优惠,香港大带宽VPS$4.5/月起

tudcloud双十一优惠开始了!tudcloud是一家注册在美国特拉华州的主机公司,是新商家,2023年2月3日注册。TUDCLOUD主要运作香港vps、香港独立服务器、美国独立服务器产品。TUDC...