Java连接数据库,为什么不可以直接用百度到的本机IP地址而要用localhost?

Java连接数据库,为什么不可以直接用百度到的本机IP地址而要用localhost?

问题描述:

图片说明
如上图中的IP地址,为什么不可替代localhost?期待您的讲解

先问是不是,再问为什么。

如果你的计算机的ip是公网ip(也就是你直接联网的计算机或者你自己能控制的路由器的ip和你在百毒王上看到的一致)
运营上没有封掉端口,你的防火墙也允许端口,这个端口在mysql上是3306,sql server是1433
你的数据库允许远程ip访问
如果是路由器,需要把路由器的对应端口映射到你计算机的ip的对应端口。
那么你完全可以通过互联网访问你的数据库

可以替代,cmd命令输入ipconfig,看ipv4地址,那个就等同于localhost,百度的那个ip不一样的

具体我查了下原因,以下内容复制粘贴
ipconfig查出来的是你本机的IP地址,也就是内网私有地址,此类地址仅在局域网使用,不能联通外网。
百度查出来的地址是你上网的共有地址,也许并不是你主机的地址,而是电信或联通分给你的地址,用于连接互联网。

比如你使用笔记本使用无线连接 大学宿舍的路由器进行上网,
ipconfig是本地IP,即路由器上配置的。而百度查到的是公网IP。
比如外网为222.212.11.10,连到你的路由器后,配置了192.168.1.2,192.168.1.3等多个IP到电脑上,这时ipconfig查到的就是192.168.1.2和192.168.1.3这些IP,而百度查到的是222.212.11.10。

本地的ip当然链接的是本地的数据库啊

很简单
想知道自己的IP地址,可以在命令行输入ipconfig,会显示其所有配置!
IP地址(Internet Protocol Address--网络协议地址),其在网络中是唯一的,且是随当前时段随机分配的“数字”!

百度IP查询出来的IP是外网IP,而你连接到的数据库可能设置只有本地连接才可以访问.
换句话来说 localhost =127.0.0.1 但是不等于你图上的 125.42.93.15

百度到的地址是你电脑的公网地址。但是内网地址和公网地址是不一样的,你家里的手机电脑用的是同一个公网地址去到互联网进行访问的。但是你的数据库是运行在本地得,开放的端口仅在内网有效,所以要用localhost,当然也可以用127.0.0.1,或者用内网地址。公网和内网地址转换用的是NAT协议。题主可以看看

NAT协议的事情,外网地址和内网地址不一样。

访问本地的应该是127.0.0.1,也就是localhost

看你的java程序放在哪里,1 和数据库都在本地localhost 2同一网段局域网ip 3不同网段才是百度ip

1楼的回答很对 2楼也对
我也说说我的理解,虽然我网络协议这块也还没去深看,以下了我的目前的认知(猜测)。
百度上查到的是运营商分给你的IP,这个IP你可以申请,一般小区是一个IP再来个分线器,分给每户,所以高峰时卡。
路由也是一样的功能,你从本机发出的请求通过路由-分线器-公网IP 这里是有三个地址的。
如果你直接通过公网IP从外发起请求,请求能到分线器,但分线器这边就不知道你的请求是要发给谁的。

这个ip和你要用的ip不是同一个,图片说明,应该是这里的ip

百度到的本地ip是外网ip, 现在大多数人都在内网, 通过外网ip并不能轻松访问到你的电脑 localhost 和127.0.0.1都是指本地 但两个域不通

百度到的是外网的地址,你内网访问外网的IP,那外网的IP的数据库端口没有映射给你内网的你的电脑的IP的端口,当然连不上

首先你要搞清楚本地连接和远程连接的区别。

一般线上测试环境都会是远程服务器连接,本地连接基本上也只是自己用

百度到的是外网地址。本地跑项目需要使用内网地址。可以是本地ip 或者localhost

首先,你直接输入百度查本机ip的时候,搜索到的是你上层路由的IP,而且这个IP还不是固定IP。并且这个是不能当做记得机器的IP来访问。如果你的是windows 请使用win+R然后输入cmd 然后输入ipconfig 来查看本机的ip地址(如果是Linux请输入ip a命令来查看下网卡的IP)这样获取到的ip能你的程序访问到的。当然,如果是本地连接的话,推荐使用localhost或者127.0.0.1这样的方式连接,也可以用IP来连接,不过可能需要你需要注意一下防火墙了。

netstat -ntl 看看侦听IP是怎么bind的。
缺省为了安全,SQL Server只能通过localhost相连。
解决办法:
打开计算机管理->服务和应用程序->SQL Server配置管理器->SQL Server 2XXX网络配置->XXX的协议->TCP/IP中 你本机的IP地址设成启用即可。如果有的端口未填,也一并填上。

你的ip和百度的ip中间有一层代理池的概念的,也就是说,百度看到的地址并不是你的真实地址,而是听过代理池代理后的地址。

因为你百度到的IP是你的动态IP呀,你的数据库在本地当然要用固定IP了呀,localhost == "127.0.0.1"

百度到的是外网的地址, 现在大多数人都在内网

都可以,数据库配置一下就ok。使用localhost主要原因还是懒。

一个是外网一个是内网,如果你想写IP 127.0.0.1