← AI 百科

数据库连接失败

报错库 · 报错 / 数据库 / 部署
一句话:程序连不上数据库,常见原因是地址/端口/账号密码错、数据库没启动、防火墙/安全组没放行,或连接数超限。

它是什么

应用启动或运行时报"连不上数据库",本质是网络能不能到达数据库、以及认证信息对不对这两件事。本地开发和线上部署的常见原因不一样:本地多半是数据库没启动或配置文件写错,线上多半是安全组/防火墙没放行,或者数据库地址填了内网地址但应用在外网。

适合干什么

  • 本地开发环境搭建数据库时排错
  • 项目部署到服务器后连不上数据库
  • 换了数据库服务商/连接串格式不对

不适合干什么

  • 数据库能连上但查询很慢(那是慢查询问题,见 database-timeout/slow-sql)

普通人怎么用

按顺序排查:①数据库服务本身是不是真的启动了(本地用命令行工具连一下试试);②连接字符串里的地址、端口、用户名、密码、数据库名有没有抄错;③如果是云数据库,控制台里是不是要单独把你的服务器 IP 加进白名单/安全组。

进阶用户怎么用

生产环境常见坑是连接池打满(max connections 超了)——不是连不上,是拒绝新连接,报错文案和真正连不上很像,要看错误码区分;容器化部署还要注意数据库地址不能写 localhost,要写服务名或实际内网地址。

常见误区

  • 以为报错就是数据库挂了,其实更多时候是网络没打通或者白名单没配
  • 本地能连、线上连不上,第一反应应该是查安全组/防火墙,不是重装数据库

和相似工具的区别

  • 和 database-timeout 不同:连接失败是压根建立不了连接,超时是连上了但对方长时间没响应

入门步骤

  • 先用数据库自带的命令行客户端手动连一次,隔离出是不是应用代码的问题
  • 检查连接字符串的每一段(协议/地址/端口/用户名/密码/库名)
  • 看云服务商的数据库白名单/安全组设置