You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux命令行无错误导入Windows导出的PostgreSQL SQL文件方法

Linux下导入Windows导出的PostgreSQL SQL文件解决方案

问题核心

Windows导出的SQL文件带有CRLF换行符,且INSERT语句中用\N表示NULL、制表符分隔字段,直接用psql导入会因换行符、参数配置不匹配导致解析错误。

具体解决步骤

1. 统一文件换行符为Linux格式

Windows的CRLF换行符在Linux下会干扰psql解析,先转换为LF格式:

  • 用dos2unix命令(多数Linux发行版预装):
dos2unix backupFromWindows.sql
  • 无dos2unix时用sed替代:
sed -i 's/\r$//' backupFromWindows.sql

2. 带参数执行psql导入

指定客户端编码(匹配导出时的编码,通常为UTF8),并明确识别\N为NULL标识:

psql -d database --set=client_encoding=UTF8 --set=NULL='\N' -f backupFromWindows.sql

如果导入时仍有字段分隔问题,可额外设置字段分隔符为制表符:

psql -d database --set=client_encoding=UTF8 --set=NULL='\N' --set=FIELD_TERMINATOR='\t' -f backupFromWindows.sql

3. 编码转换(可选)

若出现乱码,先检查文件编码:

file backupFromWindows.sql

如果是GBK等非UTF8编码,转换为UTF8后再导入:

iconv -f GBK -t UTF8 backupFromWindows.sql > backup_utf8.sql
psql -d database --set=client_encoding=UTF8 --set=NULL='\N' -f backup_utf8.sql

内容的提问来源于stack exchange,提问作者sentadoensilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:40:37