2017-02-27 43 views
0

我试图从文本文件导入数据到表中。该表是空的,但架构在那里。我运行命令将文本文件导入postgresql权限被拒绝

\copy tbl_windspeed from '/home/~~~myname~~~~/Documents/csv_windspeed.txt'

它告诉我Permission denied。我检查文件的权限,甚至将其设置为chmod 777,因此它现在是-rwxrwxrwx。我不确定我做错了什么。我什至尝试重新启动服务器? service postgresql restart

+0

你在哪里以及如何运行该声明? '\ copy'是特定于Postgres命令行客户端'psql'的命令。你在用吗? –

+0

as @a_horse_with_no_name says - '\ copy'查找客户端文件,而不是服务器 - 您在哪里检查权限? –

+0

权限被拒绝可以引用路径中的每个目录 – Jack

回答

0

我也不清楚为什么这个工作,但我找到了一个解决方案:

我被登录为“Postgres的”我猜它不喜欢这样。我使用登录创建了一个新用户,并通过该用户创建了该数据库和表(因此它拥有所有者权限)。由于我创建的新用户与我的linux用户名具有相同的用户名,我认为这就是为什么我能够导入该文件的原因。

我可以不使用用户“postgres”在笔记本电脑上导入文件吗?当我登录到psql时,我通过sudo -u postgres -i登录,我必须输入密码。所以,它知道我作为root用户进行了身份验证。如果有人可以给我一些更多的信息或解释为什么这将是值得赞赏的情况。