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