开发者社区> 问答> 正文

访问mysql数据库时,localhost和127.0.0.1不同吗?

用php访问本地的mysql数据库,代码如下:

$mysqli = new mysqli("localhost", $name, $passwd, "test");
if ($mysqli->connect_errno) {
  die("Failed to Connect to mysql: " . $mysqli->connect_errno);
}
$result = $mysqli->query("SELECT * FROM pet;");
if(!$result){
  echo "QUERY ERROR: " . $mysqli->error;
}
... ...
$mysqli->close();

当主机名写 localhost 时, 可以正常把库表中的记录显式出来。 而当主机名写成 127.0.0.1 时,虽然连接数据库没有报错,但报 QUERY ERROR。 这么说 localhost 和 127.0.0.1 不同吗? 怎么回事呢?

展开
收起
落地花开啦 2016-06-15 16:04:12 3401 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    loaclhost和127.0.0.1是不能等价的
    loaclhost是一个name,这个name一般情况下代表了127.0.0.1这个IP地址,也就是说,当你对计算机说,我要去loaclhost的时候,计算机会通过DNS或者NBNS或者hosts这个文件将它翻译成127.0.0.1.
    如果使用loaclhost去链接数据库,则Mysql会使用unixsocket去链接。如果指定为127.0.0.1,则会使用TCP/IP来链接。
    所以,尽量使用127.0.0.1.

    2019-07-17 19:39:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载

相关镜像