我正在尝试使用psycopg2连接到GitLab生产(使用omnibus包安装)postgresql数据库。
我的配置如下:
<a href='https://www.google.com/'>Link</a>
它出现以下错误:
onn = psycopg2.connect(database="gitlabhq_production", user="gitlab-psql", host="/var/opt/gitlab/postgresql", port="5432")
我可以在命令行上使用以下命令连接到postgresql服务器:
FATAL: Peer authentication failed for user "gitlab-psql"
有谁知道传递的正确参数是什么?
答案 0 :(得分:1)
对等身份验证通过检查进程正在运行的用户来工作。在命令行示例中,使用gitlab-psql
切换到sudo
。
有两种方法可以解决这个问题:
为gitlab-psql
postgres用户(不是系统用户!)分配密码,并使用它通过python进行连接。设置密码只是您需要以超级用户身份运行的另一个查询,如下所示:
sudo -u postgres psql -c "ALTER USER gitlab-psql WITH PASSWORD 'ReplaceThisWithYourLongAndSecurePassword';"
像gitlab-psql
一样运行你的python脚本:
sudo -u gitlab-psql python /path/to/your/script.py