‹ 返回笔记 Esc·

PostgreSQL 命令

PG 数据库名重命名 1. 连接到其他数据库(比如 postgres),不能连接到 hello: 2. 查看并终止所有连接到 hello 数据库的会话: pg_terminate_backend(pi…

PG 数据库名重命名

  1. 连接到其他数据库(比如 postgres),不能连接到 hello
1psql -U postgres -d postgres
  1. 查看并终止所有连接到 **hello** 数据库的会话
1SELECT pg_terminate_backend(pid)
2FROM pg_stat_activity
3WHERE datname = 'hello' AND pid <> pg_backend_pid();
  • pg_terminate_backend(pid) 会断开指定的连接;
  • pid <> pg_backend_pid() 排除当前自己的连接,避免断开自己。
  1. 确认连接已断开(可选):
1SELECT pid, usename, application_name, client_addr, state
2FROM pg_stat_activity
3WHERE datname = 'hello';
  • 如果没有返回记录,说明所有连接都已断开。
  1. 执行重命名命令
1ALTER DATABASE hello RENAME TO dify;

PG 配置远程登录

第一步:设置 postgres 用户密码

1# 登录 PostgreSQL
2sudo -u postgres psql
3
4# 设置密码
5ALTER USER postgres WITH PASSWORD 'qwer1234';
6
7# 退出
8\q

第二步:配置 PostgreSQL 监听地址

1# 找到 PostgreSQL 版本
2ls /etc/postgresql/
3
4# 编辑配置文件(假设版本是 16)
5sudo vim /etc/postgresql/16/main/postgresql.conf

找到 listen_addresses 这一行(大约在第 59 行),修改为:

1# 监听所有 IP 地址
2listen_addresses = '*'
3
4# 或者只监听特定 IP
5# listen_addresses = 'localhost,192.168.1.100'

取消注释(删除前面的 #)并保存。

第三步:配置客户端认证

1# 编辑 pg_hba.conf
2sudo nano /etc/postgresql/16/main/pg_hba.conf

在文件末尾添加以下配置:

1# 允许所有 IP 通过密码连接(开发环境)
2host    all             all             0.0.0.0/0               scram-sha-256
3
4# 或者只允许特定 IP 段(推荐用于生产环境)
5host    all             all             192.168.1.0/24          scram-sha-256
6
7# 或者只允许特定 IP
8host    all             all             192.168.1.100/32        scram-sha-256

第四步:重启 PostgreSQL

1sudo systemctl restart postgresql
2
3# 检查服务状态
4sudo systemctl status postgresql

安装 pgvector 并启用

GitHub:https://github.com/pgvector/pgvector

1brew install pgvector
1psql postgres
2
3CREATE DATABASE ai;    # 创建数据库,并退出
4psql ai    # 进入
5CREATE EXTENSION vector;    # 启用扩展
6\dx    # 查看,会看到 vector 说明成功
1CREATE TABLE documents (
2    id BIGSERIAL PRIMARY KEY,
3    content TEXT,
4    embedding vector(1536)
5);
1INSERT INTO documents (content, embedding)
2VALUES (
3    'PostgreSQL 是关系型数据库',
4    '[0.1,0.2,0.3,0.4]'
5);
1SELECT *
2FROM documents
3ORDER BY embedding <-> '[0.1,0.2,0.3,0.5]'
4LIMIT 5;

<->表示:L2 distance,<=>(常用)表示:cosine distance

1CREATE INDEX ON documents
2USING hnsw (embedding vector_cosine_ops);

除了 HNSW 还有 IVF Flat