一、准备工作
在CentOS中使用pgAdmin导出导入数据前,需完成以下准备:
- 安装pgAdmin:通过包管理器安装(如
sudo yum install pgadmin4),启动服务后通过浏览器访问http://localhost:5050登录。
- 连接数据库:打开pgAdmin,在左侧“Servers”节点右键选择“Create”→“Server”,输入源/目标数据库的主机名、端口(默认5432)、数据库名、用户名(如postgres)、密码等信息,保存后连接。
- 权限确认:确保用于连接的用户具有足够权限(如导出需
SELECT权限,导入需INSERT/CREATE权限)。
二、数据导出步骤
1. 图形界面导出(推荐新手)
- 选择目标对象:在pgAdmin左侧导航栏,展开已连接的源数据库服务器,选择要导出的数据库(或进一步展开“Schemas”→“Tables”选择特定表)。
- 启动导出流程:右键点击选中的数据库/表,选择“Export”(导出)选项。
- 配置导出参数:
- 格式选择:根据需求选择格式(SQL格式保留结构和数据,适合完整数据库迁移;CSV格式适合与电子表格工具兼容,适合单表数据迁移)。
- 内容选项:勾选“Export data”(导出数据)、“Export structure”(导出结构,如表定义、索引);若只需导出部分表,可在“Tables”列表中勾选。
- 路径设置:点击“Browse”选择导出文件的保存路径(如
/home/user/mydatabase_backup.sql),确保PostgreSQL进程对该路径有写入权限。
- 执行导出:点击“Start”按钮,等待进度条完成,导出成功后会提示“Export completed successfully”。
2. 命令行辅助导出(适合批量/自动化)
若需批量导出或集成到脚本中,可使用pg_dump命令(pgAdmin底层依赖的工具):
pg_dump -h localhost -p 5432 -U postgres -d mydatabase -f /path/to/backup.sql
- 参数说明:
-h指定主机名(默认localhost);-p指定端口(默认5432);-U指定用户名;-d指定数据库名;-f指定导出文件路径。
- 导出单表:添加
-t参数,如pg_dump -h localhost -p 5432 -U postgres -d mydatabase -t mytable -f /path/to/table_backup.sql。
三、数据导入步骤
1. 图形界面导入
- 选择目标数据库:在pgAdmin左侧导航栏,展开目标数据库服务器,选择要导入数据的数据库(需提前创建,可通过“Create”→“Database”新建)。
- 启动导入流程:右键点击目标数据库,选择“Import”(导入)选项。
- 选择导入文件:点击“Browse”按钮,选择之前导出的数据文件(如
/home/user/mydatabase_backup.sql)。
- 配置导入参数:
- 格式匹配:确保导入格式与导出格式一致(如导出为SQL则选择“SQL”格式)。
- 冲突处理:若目标数据库中已存在同名表,可选择“Truncate”(清空现有表数据)或“Append”(追加数据,需确保表结构一致)。
- 执行导入:点击“Start”按钮,等待进度条完成,导入成功后会提示“Import completed successfully”。
2. 命令行辅助导入
若需批量导入或解决图形界面导入失败问题,可使用psql命令:
psql -h localhost -p 5432 -U postgres -d mydatabase -f /path/to/backup.sql
四、注意事项
- 权限问题:确保用于连接的用户对源数据库有读取权限,对目标数据库有写入权限;导出/导入文件的路径需对PostgreSQL进程可访问。
- 版本兼容:源数据库与目标数据库的PostgreSQL版本需兼容(如高版本导出的数据可导入低版本,但部分新特性可能丢失)。
- 数据一致性:导入前建议备份目标数据库(如使用
pg_dump),避免数据覆盖;若数据量较大,可分批次导入(如按表分割)。
- 格式匹配:导出与导入的格式需一致(如SQL导出需对应SQL导入,CSV导出需对应CSV导入);CSV导入时需确认分隔符(默认逗号
,)与导出时一致。