Amazon Cloud9导入SQL文件至PostgreSQL提示文件不存在问题求助
PostgreSQL导入SQL文件报错问题解决方案
核心原因
- 优先级最高的触发因素:你报错中出现的GitHub raw地址与你执行的导入命令无关,是待导入的SQL文件内部包含
\i/\ir类的元命令,调用了该不存在的路径,导入时先执行了文件内部的元命令才触发报错。 - 路径解析异常:Amazon Cloud9环境下psql交互终端的
\i指令默认不会自动展开~为用户主目录,使用相对路径执行命令时当前工作目录与预期不符,也会触发路径不存在报错。 - 权限或特殊字符问题:路径包含空格、中文等特殊字符未转义,或是运行psql命令的用户没有SQL文件的读取权限,会出现误报文件不存在的情况。
可执行解决方案
1. 清理SQL文件内容
打开待导入的SQL文件,删除所有以\开头、指向外部文件/地址的元命令行,仅保留纯SQL逻辑(表结构、数据操作等),保存后再尝试导入。
2. 使用绝对路径执行导入
先在Cloud9终端进入SQL文件所在目录,执行pwd获取当前目录的绝对路径,例如输出为/home/ec2-user/project/sql/,替换下方命令的对应路径后执行:
psql -d my_database < /home/ec2-user/project/sql/file_to_import.sql
若使用psql交互终端导入,同样填写完整绝对路径,不要使用~代指主目录:
my_database=# \i /home/ec2-user/project/sql/file_to_import.sql
3. 权限与特殊字符适配
如果路径中包含空格、中文等特殊字符,需要用英文双引号包裹完整路径:
psql -d my_database < "/home/ec2-user/my project/sql/导入文件.sql"
如果是权限问题,先给SQL文件授予全局可读权限:
chmod +r /home/ec2-user/project/sql/file_to_import.sql
内容的提问来源于stack exchange,提问作者Aga
相关产品推荐
相关产品推荐

