1,2
10,20
100,200
我在另一个目录/mydata/foo.csv中有完全相同的文件.目录和文件具有相同的确切权限,所有者,并且由同一用户创建,但是当我运行时
copY foo FROM '/tmp/foo.csv' (FORMAT CSV, DELIMITER ',', HEADER TRUE);
我收到这个错误
ERROR: Could not open file "/tmp/foo.csv" for reading: No such file or directory
我跑的时候
copY foo FROM '/mydata/foo.csv' (FORMAT CSV, DELIMITER ',', HEADER TRUE);
我看到了copY 3.
我在这里错过了什么?
这是相关的文件和目录信息:
╭─foo@bar / ‹py27›
╰─$ll -d /mydata /mydata/foo.csv /tmp /tmp/foo.csv 1 ↵
drwxrwxrwt 2 root root 4.0K Sep 9 08:26 /mydata
drwxrwxrwt 17 root root 420 Sep 9 08:57 /tmp
-rw-r--r-- 1 root root 17 Sep 6 12:03 /mydata/foo.csv
-rw-r--r-- 1 root root 17 Sep 9 08:36 /tmp/foo.csv
╭─foo@bar / ‹py27›
╰─$diff /mydata/foo.csv /tmp/foo.csv
╭─foo@bar / ‹py27›
╰─$
我正在运行Arch Linux
注意:我也在另一台运行CentOS的Linux机器上试过这个,我无法重现这个问题.
解决方法:
在Arch上,Postgresql的系统脚本(/usr/lib/systemd/system/postgresql.service)启用了private /tmp,这意味着Postgresql服务器进程无法使用/ tmp与用户通信.
两种可能的解决方
>在其他地方创建一个新文件夹,并为其授予用户postgres读取权限:#sudo mount -t tmpfs -o users,rw tmpfs / data
>(NOT NOTOMOMENDED)将postgresql.service中的PrivateTmp选项设置为false.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。