Windows 10下psql导入.sql文件遇Permission denied问题求助
解决Windows 10下psql执行\i导入SQL文件时的权限/文件找不到问题
1. 切换到文件所在目录后执行导入
先在cmd中切换到SQL文件所在的文件夹,再启动psql连接数据库,避免路径解析错误:
cd C:\Users\Admin\Downloads psql -d test -U your_username
进入psql交互模式后,直接执行:
\i person.sql
2. 在cmd中直接执行导入命令(无需进入psql交互模式)
跳过psql交互模式,直接在cmd中运行完整导入命令,绕开交互模式下的路径转义问题:
psql -d test -U your_username -f "C:\Users\Admin\Downloads\person.sql"
注意替换your_username为你的PostgreSQL用户名(默认是postgres)。
3. 用双引号包裹路径执行\i命令
在psql交互模式中,使用双引号包裹Windows路径,避免单引号或转义字符导致的解析错误:
\i "C:\Users\Admin\Downloads\person.sql"
4. 检查文件真实名称(避免隐藏后缀)
Windows默认隐藏已知文件后缀,可能存在person.sql实际是person.sql.txt的情况,导致psql找不到文件:
- 打开文件资源管理器,点击「查看」选项卡,勾选「文件扩展名」,确认文件后缀确实是
.sql。
5. 复制文件到PostgreSQL数据目录后导入
将person.sql复制到PostgreSQL的数据目录(默认路径类似C:\Program Files\PostgreSQL\[版本号]\data),然后在psql中直接执行:
\i person.sql
PostgreSQL服务用户对该目录有默认权限,可避免权限拒绝问题。
6. 检查文件是否被杀毒软件锁定
部分杀毒软件会拦截未知来源的SQL文件访问,临时关闭杀毒软件或把文件添加到信任列表后,重新尝试导入。
内容的提问来源于stack exchange,提问作者RomanaDiana
相关产品推荐
相关产品推荐

