\i psql 权限被拒绝。

11 浏览
0 Comments

\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日
0
0 Comments

在@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),否则它会报错。我还在那个数据库上授予了自己所有权限。然后我就能够按预期执行命令了。

这个解决方案有点不美观。如果有更好的解决方案出现,我会很高兴地把答案改过来。

0