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

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

23个回答

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

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

caozhy
回答这么多问题就耍赖把我的积分一笔勾销了 回复_羊先生: 使用vpn拨号,外网计算机拨号到你这个网络上,组成虚拟局域网,然后用内网ip可以访问。你可以用openvpn搭建vpn服务器。
接近 3 年之前 回复
qq_37478537
令狐小弟 还有,如果不把公网端口映射到内网端口,有其他办法可以访问我内网数据库吗?
接近 3 年之前 回复
qq_37478537
令狐小弟 回复caozhy: 哦,谢了·
接近 3 年之前 回复
caozhy
回答这么多问题就耍赖把我的积分一笔勾销了 回复_羊先生: 区别就是,前者只能在内网内的计算机连你的数据库,如果你要在另一个城市的一台计算机上连,就需要公网ip
接近 3 年之前 回复
qq_37478537
令狐小弟 或者讲下它们的优缺点也行,期待讲解。
接近 3 年之前 回复
qq_37478537
令狐小弟 回复caozhy: 可是,我刚才用ipconfig 搜出的地址也可以连接上本地数据库,按照你说的用映射的方法也可以达到访问到本地数据库的效果,那么它们有什么不同吗?
接近 3 年之前 回复
caozhy
回答这么多问题就耍赖把我的积分一笔勾销了 回复_羊先生: 是的,起码有一台需要换一个端口。
接近 3 年之前 回复
qq_37478537
令狐小弟 那该怎么通过jdbc连接同一公网IP下的两台内网的服务器的数据库?是通过改变两台数据的端口使他们不一样,然后分别映射但公网端口号上,还是其它?期待您的回答。
接近 3 年之前 回复

可以替代,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地址,可以在命令行输入ipconfig,会显示其所有配置!
IP地址(Internet Protocol Address--网络协议地址),其在网络中是唯一的,且是随当前时段随机分配的“数字”!

qq_37478537
令狐小弟 谢谢讲解!
接近 3 年之前 回复

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

qq_37478537
令狐小弟 嗯嗯,谢了!
接近 3 年之前 回复

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

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

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

qq_37478537
令狐小弟 我IPconfig 查出来的IP只是内网IP,不具有全网唯一性,对吗?
接近 3 年之前 回复
qq_37478537
令狐小弟 谢谢!
接近 3 年之前 回复

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

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

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

共23条数据 1 3 尾页
立即提问
相关内容推荐