为什么在 PostgreSQL 中带有标志 password/locahost 的权限被拒绝错误?
Why permission denied error with flags password/locahost in PostgreSQL?
数据库 检测器 存在,由 psql 中的 \l
验证。
用户 postgres
已通过 SELECT * FROM pg_user;
验证。
#1 测试[已解决]
我运行
sudo -u postgres psql detector -c "SELECT * FROM pg_user"
但得到
could not change directory to "/home/masi/det": Permission denied
同时获得用户的正确输出 table。
Fabricio 的回答和评论中的解决方案 即重启shell;以前 运行 标志 --password
导致奇怪的行为。
#2 测试[已解决]
其他奇怪的测试。我运行
sudo -u postgres psql detector --password -h localhost -c 'SELECT * FROM pg_user;'
虽然我是本地主机,但它给出了以下内容。
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
Fabricio 的回答和评论中的解决方案 即重新启动 shell 并且不要将标志 --password
与 sudo 一起使用。
不要将标志 -h localhost
与 sudo 一起使用。
为什么会出现权限被拒绝的错误?
您在 /home/masi/det_78_2015
启动 psql 命令时。由于启动命令的用户是postgres,因此不允许查看您当前所在的主目录。这就是命令成功但抛出目录权限错误的原因。
postgres
用户在系统中有主目录吗?
数据库 检测器 存在,由 psql 中的 \l
验证。
用户 postgres
已通过 SELECT * FROM pg_user;
验证。
#1 测试[已解决]
我运行
sudo -u postgres psql detector -c "SELECT * FROM pg_user"
但得到
could not change directory to "/home/masi/det": Permission denied
同时获得用户的正确输出 table。
Fabricio 的回答和评论中的解决方案 即重启shell;以前 运行 标志 --password
导致奇怪的行为。
#2 测试[已解决]
其他奇怪的测试。我运行
sudo -u postgres psql detector --password -h localhost -c 'SELECT * FROM pg_user;'
虽然我是本地主机,但它给出了以下内容。
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
Fabricio 的回答和评论中的解决方案 即重新启动 shell 并且不要将标志 --password
与 sudo 一起使用。
不要将标志 -h localhost
与 sudo 一起使用。
为什么会出现权限被拒绝的错误?
您在 /home/masi/det_78_2015
启动 psql 命令时。由于启动命令的用户是postgres,因此不允许查看您当前所在的主目录。这就是命令成功但抛出目录权限错误的原因。
postgres
用户在系统中有主目录吗?