You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot连接PostgreSQL数据库报错:数据库'student'不存在问题求助

Spring Boot连接PostgreSQL提示"database 'student' does not exist"的排查方案

看到你遇到的这个问题,我之前也碰到过好几次——明明手动创建了数据库,但Spring Boot就是找不到它,下面几个排查点应该能帮你定位并解决问题:

1. 核对数据库名称的大小写与拼写细节

PostgreSQL在Linux/macOS这类类Unix系统下默认严格区分大小写,如果你创建数据库时用了大写(比如Student)或混合大小写,而配置文件里写的是全小写的student,就会触发这个错误。

你可以打开终端,用psql登录PostgreSQL:

psql -U postgres

然后执行命令列出所有数据库:

\l

仔细检查输出里的数据库名称,确认和配置文件中的student完全一致(包括没有多余空格)。如果名称不符,要么修改配置文件的URL(比如给特殊大小写的数据库名加引号:jdbc:postgresql://localhost:5432/"Student"),要么重新创建全小写的数据库:

CREATE DATABASE student;

2. 确认postgres用户对student数据库有访问权限

即使数据库存在,如果你创建数据库时用的不是postgres用户,postgres账号可能没有访问该数据库的权限。可以在psql中执行授权命令:

GRANT ALL PRIVILEGES ON DATABASE student TO postgres;

3. 检查PostgreSQL的监听配置与端口映射

  • 打开PostgreSQL的postgresql.conf配置文件,确认listen_addresses设置为*或127.0.0.1(允许本地连接),port设置为5432(和你配置文件中的端口保持一致)。
  • 如果你是用Docker运行PostgreSQL,要确认容器的5432端口已经映射到本地的5432端口,启动容器的命令需要包含-p 5432:5432参数。

4. 排查是否连接到了错误的PostgreSQL实例

有时候本地可能安装了多个PostgreSQL版本,或者其他服务占用了5432端口,导致你连接的不是创建student数据库的那个实例。可以用以下命令直接查看当前默认实例的数据库列表:

psql -U postgres -l

如果这个列表里没有student,说明你需要找到正确的实例端口,修改配置文件中的URL端口号。

5. 临时测试验证连接基础配置

把配置文件中的数据库名改成PostgreSQL默认存在的postgres:

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres

重启应用,如果能成功连接,说明问题确实出在student数据库的创建或权限上;如果还是报错,那要检查用户名、密码是否正确,或者PostgreSQL服务是否正常启动。


内容的提问来源于stack exchange,提问作者tango-2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 08:17:43