温馨提示×

centos怎样导入postgresql数据

小樊
44
2026-09-09 10:22:53
栏目: 云计算

在 CentOS 上“导入 PostgreSQL 数据”通常有几类常见场景,下面按最常用方式给你说明,你可以根据自己的情况选择。


一、使用 psql 导入 SQL 文件(最常见)

1. 准备 SQL 文件

例如:

/backup/db.sql

2. 导入到指定数据库

psql -U username -d dbname -h localhost -f /backup/db.sql

示例:

psql -U postgres -d testdb -f /backup/testdb.sql

如果提示密码,请输入对应用户密码
或提前配置 ~/.pgpass


二、使用 pg_restore 导入备份文件(.dump / .tar)

如果是用 pg_dump -F c-F t 生成的备份:

pg_restore -U username -d dbname /backup/db.dump

示例:

pg_restore -U postgres -d testdb /backup/testdb.dump

常用参数:

pg_restore -U postgres -d testdb --clean --if-exists /backup/testdb.dump
  • --clean:先删除已有对象
  • --if-exists:避免报错

三、导入 CSV 数据到表中

1. 表结构已存在

COPY table_name FROM '/path/to/file.csv' WITH (FORMAT csv, HEADER true);

或在 shell 中:

psql -U postgres -d testdb -c "\copy table_name FROM '/path/file.csv' WITH CSV HEADER"

⚠️ 注意:

  • 使用 COPY 需要 PostgreSQL 服务端权限
  • 使用 \copy 是客户端导入,更安全

四、从其他数据库导入(如 MySQL → PostgreSQL)

常见方式:

  • pgloader(推荐)
  • 中间导出为 CSV / SQL

示例(pgloader):

pgloader mysql://user:pwd@host/db postgresql://user:pwd@localhost/db

五、导入前常用准备命令

# 登录
psql -U postgres

# 创建数据库
CREATE DATABASE testdb;

# 创建用户
CREATE USER testuser WITH PASSWORD '123456';

# 授权
GRANT ALL PRIVILEGES ON DATABASE testdb TO testuser;

六、常见问题

1. 找不到 psql 命令

which psql

若没有:

yum install postgresql-client

dnf install postgresql

2. 权限错误

  • 确保数据库已存在
  • 用户有 CONNECT / CREATE 权限
  • 文件路径 PostgreSQL 能读取

如果你能告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ PostgreSQL 版本
  • ✅ 数据格式(SQL / dump / CSV)
  • ✅ 是否本机还是远程

我可以给你更精确的一步一步命令

0