数据库服务器IP地址怎么查:先给结论
数据库服务器的IP地址分三种查法:在服务器本机用命令看网卡地址,在数据库客户端里查服务端地址,在云平台控制台看实例网络信息,用哪台机器跑数据库,就查哪台机器的地址,别把客户端本机IP当成数据服务端IP。 下面按场景拆开讲,都是可以直接照着敲的操作。
先分清你要查的是哪台机器
很多人卡在第一步,把”我的电脑IP”和”数据库服务器IP”混成一件事,这两种东西经常不是一台机器。
- 数据库装在本地开发机:服务器IP就是你本机的局域网地址,
168.1.x。 - 数据库装在公司机房或云服务器:要去那台服务器上查,或者翻云控制台。
- 用的是云数据库RDS:没有物理机可登,地址由云厂商分配,控制台里直接能看。
- 连的是别人给的库:先翻项目配置文件里的连接串,比自己去猜快得多。
业内专家指出,实际排障中相当一部分”连不上数据库”的问题,根源都落在地址选错上:拿了公网地址去连只开了内网的实例,或者反过来。
本机回环地址不算数
0.0.1、localhost、:1 这三个只在本机内部有效,你在A机器上查到 0.0.1,B机器拿这个地址去连,一定连不上,看到这类地址,说明你查到的是回环网卡,不是对外服务地址。
Windows服务器上怎么查本机IP
数据库跑在Windows Server上,是最常见的企业内网场景,操作路径很固定。
ipconfig命令
- 按
Win + R,输入cmd回车。 - 执行
ipconfig /all。 - 找到正在用的那块网卡,看”IPv4 地址”,形如
20.3.15,这就是内网IP。
加 /all 能看到DNS、网关、MAC地址,排查多网卡时很有用,裸 ipconfig 也行,但信息少一半。
图形界面看
控制面板 → 网络和共享中心 → 更改适配器设置 → 双击在用网卡 → 详细信息 → 看IPv4地址,路径长,但不用记命令。
顺手确认数据库监听的地址
地址查出来不代表数据库在听,SQL Server 打开”SQL Server 配置管理器” → SQL Server 网络配置 → 协议 → TCP/IP → 属性 → IP地址页签,拉到最下面看IPAll里的TCP端口,默认 1433,MySQL 则看 my.ini 里的 bind-address,如果是 0.0.1,那它只收本机请求,外部用IP连是白搭。
Linux查看数据库服务器IP地址命令
Linux上没有图形界面兜底,全靠命令,但更快。
查本机网卡地址
ip addr show:现代发行版首选,看inet后面那串。ifconfig:老命令,部分精简系统没装,需要net-tools。hostname -I:一行输出所有IPv4地址,最快。nmcli device show:NetworkManager 环境下能连带看连接名。
查数据库是否真的在监听
这一步比查IP更关键。
- MySQL:
ss -tlnp | grep 3306 - PostgreSQL:
ss -tlnp | grep 5432 - Redis:
ss -tlnp | grep 6379 - 通用:
netstat -tunlp,老系统上更常见
如果输出是 0.0.0:3306 或 :3306,说明监听所有网卡;如果是 0.0.1:3306,那只能本机访问,要去改配置文件里的 bind-address 再重启服务。
直接在数据库里问它自己
已经能登进数据库的话,让它自己报身份最准。
- MySQL:
SELECT @@hostname, @@port; - SQL Server:
SELECT @@SERVERNAME, SERVERPROPERTY('MachineName'); - PostgreSQL:
SELECT inet_server_addr(), inet_server_port(); - Oracle:
SELECT sys_context('USERENV','SERVER_HOST') FROM dual;
@@hostname 返回的是主机名,不是IP,要落到IP,再配合 ping 主机名 或 nslookup 主机名 解析一下,这个区别坑过不少人。
云服务器数据库IP地址在哪里看
现在越来越多业务直接跑在云上,查地址这件事变成了”找页面”。
云主机自建数据库
登录云厂商控制台,进实例列表,简米云ECS在实例详情页的”网络信息”里,公网IP和私网IP分开列;酷番云CVM在实例列表直接显示;华为云、AWS EC2 逻辑类似。私网IP用于同地域同VPC内互访,公网IP要额外绑定弹性IP才有。
云数据库RDS
托管型数据库不用登机器,控制台”实例基本信息”页会给出两个地址:
- 内网地址:同VPC内应用连这个,延迟低、通常不额外计流量费。
- 外网地址:默认不开放,需要手动申请,且要配白名单。
据工信部相关公开信息,企业上云后跨网络访问的安全配置不当,是数据库暴露风险的主要来源之一,所以看到外网地址能不开就不开,这个习惯比记住地址本身更重要。
白名单别配反了
云数据库的白名单要加的是客户端出口IP,不是数据库自己的IP,这一步经常有人搞混,配完发现还是连不上,查客户端出口IP,Linux下 curl ifconfig.me 就能看到。
内网数据库服务器IP地址怎么查:从应用反推
生产环境里,数据库地址往往写在配置文件里,翻文件比登服务器快,尤其当你没有服务器权限的时候。
常见配置文件位置
- Java/Spring Boot:
application.yml、application-prod.properties,找jdbc:mysql://后面那段。 - PHP:
.env里的DB_HOST,或wp-config.php里的DB_HOST。 - Python/Django:
settings.py的DATABASES配置。 - Node.js:
.env里的DB_HOST、DATABASE_URL。 - 容器化环境:
docker inspect 容器名 | grep -i host,或看docker-compose.yml。
连接串长这样:jdbc:mysql://10.0.1.22:3306/order_db,中间那串就是数据库服务器IP,冒号后面是端口。
用网络工具验证
拿到地址别急着连,先探一下通不通。
ping 10.0.1.22:能通只说明网络可达,不代表端口开着。telnet 10.0.1.22 3306:端口级验证,比ping有用,Windows 10以上需要先启用telnet客户端。nc -zv 10.0.1.22 3306:Linux下更顺手。nslookup db.internal.company.com:如果配置里写的是域名,用它解析出IP。
行业共识认为,排查连接问题应按”网络可达 → 端口开放 → 账号权限”三层顺序走,跳步容易白忙。
多网卡和容器环境要留个心眼
服务器有多块网卡时,ip addr 会列出多个地址,要按业务网段判断用哪个,跑了Docker的机器,17.0.1 这类是网桥地址,不是对外服务地址,别抄错。
IP查到了却连不上?几个高频坑
- bind-address 限制在本地,改配置后必须重启数据库服务才生效。
- 防火墙没放行端口,CentOS 看
firewall-cmd --list-ports,Ubuntu 看ufw status。 - 安全组规则缺一条,云主机默认只开22/3389,数据库端口要手动加。
- 实例绑定的地址变了,云主机重启后如果没绑定弹性IP,公网地址可能变。
- 连接串里的库名写错,地址对了但库不存在,报错信息很像网络问题。
常见数据库默认端口可以对照一下:
| 数据库 | 默认端口 |
|---|---|
| MySQL / MariaDB | 3306 |
| SQL Server | 1433 |
| PostgreSQL | 5432 |
| Oracle | 1521 |
| MongoDB | 27017 |
| Redis | 6379 |
生产环境换过端口的很常见,以实际配置为准。
关于数据库服务器IP地址的Q&A
Q:数据库服务器IP地址和端口一定要一起记吗?
是,只给IP不给端口,等于只给了楼号没给门牌,连接串、防火墙规则、白名单配置都得成对出现,厂商文档里提到的”连接地址”通常已经包含端口。
Q:数据库服务器IP地址查询需要root权限吗?
查本机网卡地址不需要,ip addr 普通用户就能跑,但查监听端口用 ss -tlnp 时,非root看不到进程名,只能看到端口号,要完整信息,加 sudo。
Q:云数据库的IP地址会变吗?
内网地址在实例生命周期内一般固定,除非迁移可用区或重建实例,外网地址在未绑定固定弹性IP的情况下,重启或变更配置后可能变化,业务侧建议用内网域名而非硬编码IP,改起来不用动代码。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/770679.html

