☰
PostgreSQL 18 本地连接配置 + Neon 云数据库备份与恢复全流程(Windows 实操)
2026/11/3 10:40:50 网站建设 项目流程

一、本地 PostgreSQL 连接测试

安装完成后,先确认数据库能正常连接。两种方式任选其一。

方式 1:pgAdmin4(图形界面)

新建连接,填写以下信息:

参数

值

Host

localhost

Port

5432

Username

postgres

Password

你安装时设置的密码

点击测试连接,能连上就完全 OK。

方式 2:cmd 用 psql 连接

psql -U postgres -h localhost -p 5432(本机是psql -U postgres -h 192.168.1.51 -p 5432)

输入密码后,能进入 psql 命令行就正常。


二、常见问题:pg_hba.conf 报错

第一次安装连接时可能遇到这个报错:

C:\Users\Administrator>psql -U postgres -h 192.168.1.51 -p 5432 psql: 错误:连接到 "192.168.1.51" 上的服务器,端口 5432 失败:致命错误:没有用于主机 "192.168.1.51", 用户 "postgres", 数据库 "postgres", no encryption 的 pg_hba.conf 记录 (到时按下面的更改配置):

解决办法如下:

1. 修改 pg_hba.conf,放行内网 IP

找到并打开文件:

E:\PostgreSQL\18\data\pg_hba.conf

在文件末尾增加一行(放行 IPv4 内网网段):

host all all 192.168.1.0/24 scram-sha-256

2. 确认监听地址 postgresql.conf

打开同目录下的postgresql.conf,找到:

listen_addresses = 'localhost'

改成:

listen_addresses = '*'

改完配置后需要重启 PostgreSQL 服务才能生效(见下一节)。


三、重启 PostgreSQL 服务

  1. Win + R→ 输入services.msc回车
  1. 找到PostgreSQL 18
    • 如果状态是【正在运行】:右键停止,等它变成已停止,再右键启动
    • 如果是【已停止】:直接右键【启动】

重启后再用 psql 连接一次,验证问题是否解决。


四、psql 常用命令速查

查看当前数据库列表:\l 切换数据库:\c 库名 查看所有表:\dt 退出 psql:\q

五、线上数据库备份(把 Neon 云托管数据库备份到本地)

第 1 步:打开 CMD

Win搜索cmd,打开命令提示符。

第 2 步:测试 pg_dump 是否可用

pg_dump --version

两种结果:

✅正常(能输出版本号,比如pg_dump (PostgreSQL) 18.x) 说明环境变量已配好,直接可以使用导出命令。

❌报错:'pg_dump' 不是内部或外部命令说明 bin 目录没加到系统 PATH,两个办法:

  • 办法 A(临时用,推荐):先 cd 进到 pg 的 bin 目录再执行命令。例如 PG 装在E:\PostgreSQL\18\bin:
  • 办法 B(一劳永逸):把E:\PostgreSQL\18\bin添加到系统环境变量Path,以后任意位置 cmd 都能直接调用。

第 3 步:导出 Neon 数据库

⚠️ 注意:先把 Neon 的连接串准备好,并且关闭 Connection Pooling(选 off,不带 pooler 的直连地址)。

执行导出命令(替换成你自己的连接串和保存路径):

g_dump --no-owner --no-acl "postgresql://你的用户名:你的密码@ep-xxxx.aws.neon.tech/rbac?sslmode=require&channel_binding=require" -f E:\PostgreSQL\sql-beifen\quanxian\neon-rbac-backup.sql

如何判断成功:

  • 没有任何红色报错,光标安静等待一会儿然后回到提示符 → 代表成功
  • 去E:\PostgreSQL\sql-beifen\quanxian\目录看是否生成了.sql文件

常见报错排查:

报错现象

原因与解决

连接超时

去 Neon 控制台唤醒计算实例(唤醒 compute)

密码/账号错、主机地址错

核对 Neon Connect 页面的直连地址

SSL 相关报错

保留sslmode=require&channel_binding=require参数


六、把备份恢复到线上(Neon)

根据你之前备份的方式,二选一:

方式 1:纯 pgAdmin4 图形界面操作

  1. 建库(Create → Database)
  1. 右键新库 → Restore(还原)
  1. 模板选 template0(这是干净版本,避免编码/模板冲突)

方式 2:命令行操作

第一步:先连接 Neon,创建一个干净的空库(我的库叫neondb ):

CREATE DATABASE neondb TEMPLATE template0;

第二步:用 psql 把备份文件恢复进去:

psql "postgresql://用户名:密码@ep-late-night-b5k8x2pn.c-7.us-east-2.aws.neon.tech/neondb?sslmode=require&channel_binding=require" -f E:\PostgreSQL\sql-beifen\quanxian\neon-rbac-backup.sql

恢复完成后,用\dt检查表是否都回来了。


总结

场景

关键命令/操作

本地连接测试

psql -U postgres -h localhost -p 5432

内网连接报 pg_hba 错误

pg_hba.conf 加host all all 192.168.1.0/24 scram-sha-256+listen_addresses = '*'+ 重启服务

备份 Neon

pg_dump --no-owner --no-acl "连接串" -f 备份.sql

恢复到 Neon

先CREATE DATABASE xx TEMPLATE template0;,再psql "连接串" -f 备份.sql

💡 建议定期把 Neon 云数据库 pg_dump 备份到本地,云服务也不是 100% 保险,双份存储更安心。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询