\i psql 权限被拒绝。
\i psql 权限被拒绝。
我正在尝试运行一个使用postgresql的.sql脚本。我已经安装了postgresql,并创建了一个数据库来运行脚本,但是我不断地收到文件权限被拒绝的错误。寻找解决此问题的解决方案或解决方法,让我能够执行psql脚本。
我尝试了以下方法:
chmod 777 mysqlfile.sql chown postgres mysqlfile.sql
psql命令:
\i /path/to/file/mysqlfile.sql psql -U postgres -d testdb -a -f mysqlfile.sql
我已经查看了以下解决方案,但它们没有解决我的问题:解决方案1,解决方案2,我使用此站点作为设置postgresql的说明书。
目前,当我尝试运行上述命令时,我收到了权限被拒绝的错误,理想的解决方案/解决方法是在新数据库中在postgres中执行sql脚本。
admin 更改状态以发布 2023年5月23日
在@wildplasser发表评论后,我找到了解决方案。以下是我按顺序运行的命令,先是解决方法,然后是解释。
cs@cs: sudo -u -i postgres postgres@cs: psql (postgres) psql: CREATE DATABASE cs; (postgres) psql: GRANT ALL PRIVILEGES ON DATABASE cs TO cs; (postgres) psql: exit postgres@cs: exit cs@cs: psql (cs) psql: \i /path/to/file/mysqlfile.sql
为什么我要这样做:
当你作为其他人(不是postgres用户)连接到psql时,它也会寻找一个名称相同的数据库进行连接。所以我创建了一个与我的本地帐户(cs)相同名称的数据库(cs),否则它会报错。我还在那个数据库上授予了自己所有权限。然后我就能够按预期执行命令了。
这个解决方案有点不美观。如果有更好的解决方案出现,我会很高兴地把答案改过来。