从MySQL转用PostgreSQL 16,连接提示数据库不存在如何解决?
PostgreSQL连接报错:database "backend"不存在的解决办法
问题原因
PostgreSQL和MySQL的默认连接逻辑不同:MySQL会自动将用户名作为默认数据库名,但PostgreSQL不会。你仅创建了backend用户,未创建同名的backend数据库,因此连接时触发该报错。
解决步骤
- 登录VPS上的PostgreSQL默认数据库
在VPS终端执行命令,以超级用户身份进入自带的postgres数据库:
sudo -u postgres psql
执行后会进入psql交互界面。
- 创建与用户同名的数据库
在psql交互界面中,执行以下命令创建数据库并指定所有者为backend:
CREATE DATABASE backend OWNER backend;
执行成功会返回CREATE DATABASE提示。
- 重新尝试连接
回到本地终端,执行原连接命令即可正常登录:
psql -U backend -h localhost -p 5432
使用Goland连接时,确保连接配置中的数据库名称填写backend。
额外提示
如果后续出现连接拒绝问题,需检查两个配置文件:
postgresql.conf:确认listen_addresses设置为'*'(允许远程连接)pg_hba.conf:添加允许本地/你的IP段连接的规则,示例:host all all 你的本地IP/32 scram-sha-256
修改配置后需重启PostgreSQL服务生效:sudo systemctl restart postgresql
内容的提问来源于stack exchange,提问作者H.Okan
相关产品推荐
相关产品推荐

