在已部署好的 Ubuntu 24.04 云服务器上安装 PostgreSQL 数据库,创建数据库和用户,并完成连通性测试——为后续使用 PostgresSaver 作为 LangGraph Checkpointer 后端做准备。
sudo apt update
sudo apt install postgresql postgresql-contrib -y
| 项目 | 值 |
|---|
| 默认监听端口 | 5432 |
| Linux 发行版 | Ubuntu Server 24.04 |
| 安装后服务状态 | 自动启动(active) |
| 步骤 | 操作 | 命令 / 说明 |
|---|
| Step 1 | 安装 PostgreSQL | sudo apt install postgresql postgresql-contrib -y |
| Step 2 | 验证安装 | psql --version |
| Step 3 | 查看服务状态 | sudo systemctl status postgresql |
| Step 4 | 查看监听端口 | `sudo netstat -tlnp |
| Step 5 | 创建用户 | 在 psql 命令行中执行 CREATE USER langchauser WITH PASSWORD 'ABCD1234'; |
| Step 6 | 创建数据库 | CREATE DATABASE langchaindb OWNER langchauser; |
| Step 7 | 用户授权 | GRANT ALL PRIVILEGES ON DATABASE langchaindb TO langchauser; |
| Step 8 | 查看数据库列表 | \l |
| Step 9 | 退出 psql | \q |
| Step 10 | 连通性测试 | psql -h localhost -U langchauser -d langchaindb |
| 操作 | PostgreSQL (psql) | MySQL |
|---|
| 列出所有数据库 | \l | SHOW DATABASES; |
| 连接数据库 | \c dbname | USE dbname; |
| 列出所有表 | \dt | SHOW TABLES; |
| 退出客户端 | \q | EXIT; 或 \q |
┌─────────────────────────────────┐
│ 1. sudo apt install postgresql │ 安装 PostgreSQL
│ postgresql-contrib -y │
└───────────────┬─────────────────┘
▼
┌─────────────────────────────────┐
│ 2. psql --version │ 验证版本(如 16.x)
└───────────────┬─────────────────┘
▼
┌─────────────────────────────────┐
│ 3. systemctl status postgresql │ 确认服务 running (active)
└───────────────┬─────────────────┘
▼
┌─────────────────────────────────┐
│ 4. netstat -tlnp | grep 5432 │ 确认端口 5432 监听中
└───────────────┬─────────────────┘
▼
┌─────────────────────────────────┐
│ 5. sudo -u postgres psql │ 进入客户端
│ CREATE USER langchauser │ 创建用户
│ WITH PASSWORD 'ABCD1234'; │
│ CREATE DATABASE langchaindb │ 创建数据库
│ OWNER langchauser; │
│ GRANT ALL PRIVILEGES │ 授权
│ ON DATABASE langchaindb │
│ TO langchauser; │
└───────────────┬─────────────────┘
▼
┌─────────────────────────────────┐
│ 6. psql -h localhost │ 连通性测试
│ -U langchauser │
│ -d langchaindb │
└─────────────────────────────────┘
┌──────────────────────────────────┐
│ PostgreSQL Instance │
│ │
│ ┌─────────────────────────────┐ │
│ │ Database: langchaindb │ │
│ │ Owner: langchauser │ │
│ │ Privileges: ALL │ │
│ └─────────────────────────────┘ │
│ │
│ User: langchauser │
│ Password: ABCD1234 │
└──────────────────────────────────┘
DB_URI = "postgresql://langchauser:ABCD1234@localhost:5432/langchaindb"
sudo apt update
sudo apt install postgresql postgresql-contrib -y
sudo systemctl status postgresql
sudo ss -tlnp | grep 5432
sudo netstat -tlnp | grep postgres
CREATE USER langchauser WITH PASSWORD 'ABCD1234';
CREATE DATABASE langchaindb OWNER langchauser;
GRANT ALL PRIVILEGES ON DATABASE langchaindb TO langchauser;
\l
\q
psql -h localhost -U langchauser -d langchaindb
psql -h <云服务器公网IP> -p 5432 -U langchauser -d langchaindb
| 问题 | 原因 | 解决方案 |
|---|
sudo: apt: command not found | 非 Ubuntu/Debian 系统 | 改用对应的包管理器(yum/dnf) |
| 服务状态不是 active | 安装后未自动启动 | sudo systemctl start postgresql |
psql: connection refused | PostgreSQL 未启动或端口不对 | 检查 systemctl status postgresql + 端口监听 |
| 远程连不上 5432 | 安全组未开放 / pg 配置限制 | ① 安全组添加 TCP 5432 入站规则;② 修改 postgresql.conf 的 listen_addresses;③ 修改 pg_hba.conf 认证规则 |
\l 命令无输出 | 在 SQL 模式下而非 psql 元命令模式下 | psql 中直接输入 \l 回车(末尾不加分号) |
| 忘记用户名或密码 | - | 以 sudo -u postgres psql 进入后可用 ALTER USER langchauser PASSWORD '新密码'; 重置 |
- 本节是 LangChain 持久化方案的关键前置步骤——后续
PostgresSaver 和 Store 都将依赖 PostgreSQL。 - PostgreSQL 安装后默认只监听
localhost (127.0.0.1),若需本地远程连接,必须修改 postgresql.conf 和 pg_hba.conf 两个配置文件。 - 记录好数据库连接 URI 格式:
postgresql://user:password@host:5432/dbname,后续 LangChain 配置会直接使用。 \l、\dt、\q 等 psql 元命令是 PostgreSQL 特有的交互方式,与 MySQL 的 SQL 风格不同,注意区分。- 下一步就是将
PostgresSaver 接入 LangGraph StateGraph,实现基于 PostgreSQL 的持久化短期记忆。