创建PostgreSQL性能基准扩展时遇角色登录权限错误求助
PostgreSQL角色登录权限问题解决
问题场景
在创建PostgreSQL性能基准扩展时,已将pawankukreja设置为超级用户,但执行以下命令时:
cd ~ time psql postgres -c "select addme(floor(random() * (100-1+1) + 1) ::int+g from generate_series(1,1000000) as g" > out.txt
出现错误:
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "pawankukreja" is not permitted to log in real 0m0.125s user 0m0.050s sys 0m0.040s
解决步骤
- 使用PostgreSQL默认超级用户
postgres登录数据库:sudo -u postgres psql - 为
pawankukreja角色添加登录权限:ALTER ROLE pawankukreja LOGIN; - (可选)若需要密码登录,设置角色密码:
ALTER ROLE pawankukreja PASSWORD 'your_custom_password'; - 退出psql:
\q - 重新执行原命令即可正常登录。
额外提示
原查询语句存在语法错误,括号不匹配且参数传递方式可能有误。假设addme是接收两个整数参数的函数,修正后的语句应为:
select addme(floor(random() * (100-1+1) + 1)::int, g) from generate_series(1,1000000) as g
内容的提问来源于stack exchange,提问作者Pawan Kukreja
相关产品推荐
相关产品推荐

