连接MYSQL时,主机名为 localhost 和 127.0.0.1 的区别

本文介绍了在MySQL中localhost与127.0.0.1的区别,解释了它们在不同连接方式下如何被服务器识别,并讨论了skip_name_resolve设置的影响。

如果仔细查看MYSQL的权限表,会发现存在主机名为 localhost 的记录,也存在主机名为 127.0.0.1 的记录,那这两着分别在什么时候会用到呢?

使用 /usr/local/mysql/bin/mysql -u root -p访问MYSQL服务器的时候,如果使用了 -h 参数,mysql 就会通过 TCP/IP 的方式去连接服务器;如果没有 -h 参数,默认会使用 UNIX socket 方式。

如果通过 TCP/IP 方式进来的连接,MYSQL服务器接收到的来源主机是 127.0.0.1;如果是 UNIX socket 方式,MYSQL服务器接收到的来源主机是 localhost。

如果MYSQL服务器开启了 skip_name_resolve,MYSQL服务器就不会把接收到的 IP 地址转化为域名,所以前者的current_user就是 root@'127.0.0.1',后者的current_user就是 root@'localhost'。

如果按照MYSQL的默认配置,skip_name_resovle 是OFF,MYSQL服务器就会将 127.0.0.1 转换为 localhost,那么前者和后者两种连接的 current_user 都是 root@'localhost'

# 如何将 Navicat 连接中的“主机”从 `localhost` 改为 `127.0.0.1` 该问题属于“普通文本型”提问,用户希望知道在 Navicat 中如何修改数据库连接主机地址。 --- ## 详细操作步骤(图文指引) ### ✅ 步骤 1:打开 Navicat 主界面 启动 Navicat 软件,进入主窗口。 你会看到已保存的数据库连接列表(例如:“MySQL-Local”、“Test”等)。 --- ### ✅ 步骤 2:选择要修改的连接 → 右键点击 → 选择“编辑连接” 鼠标右键单击你当前无法连接数据库连接(通常是显示红色 × 的那个),然后在弹出菜单中选择: > **编辑连接** 📌 示例名称:`MySQL Local` 或 `localhost` 类似的名称。 --- ### ✅ 步骤 3:修改“主机”字段 在弹出的“编辑连接”窗口中: | 字段 | 修改前 | 修改后 | |------|--------|--------| | **主机** | `localhost` | `127.0.0.1` | | 端口 | `3306`(保持不变) | ✅ 确认为 `3306` | | 用户名 | 如 `root` | 保持原值 | | 密码 | ******** | 保持原值 | 👉 将“主机”输入框中的 `localhost` 删除,替换成: ``` 127.0.0.1 ``` > 📌 注意:不要加引号或空格! --- ### ✅ 步骤 4:点击“测试连接”验证是否成功 点击底部的: > **测试连接** 如果一切正常,会弹出提示: ``` 连接成功 ``` ✅ 表示配置正确,可以连接数据库。 ❌ 如果仍失败,请参考之前建议(检查服务、端口、防火墙等)。 --- ### ✅ 步骤 5:点击“确定”保存更改 确认无误后,点击: > **确定** 此回到主界面,你可以双击该连接重新登录。 --- ## ⚠️ 补充说明 - `localhost` `127.0.0.1` 看似相同,但在操作系统底层处理方式不同: - `localhost` 可能使用 **命名管道(Named Pipe)** 或 IPv6 - `127.0.0.1` 明确使用 **IPv4 TCP/IP 协议** - MySQL 默认监听的是 TCP/IP,因此使用 `127.0.0.1` 更可靠。 --- ## 知识点 ### 1. **IPv4 回环地址** `$127.0.0.1$` 是本地回环地址,用于指向本机网络服务,确保通过 TCP/IP 协议进行通信。 ### 2. **主机名解析机制** `localhost` 是一个主机名,默认映射到 `$127.0.0.1$`,但受 `$hosts$` 文件系统配置影响可能失效。 ### 3. **Navicat 连接配置持久化** 修改后的连接信息会被保存在本地配置中,下次启动软件自动生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值