【问题标题】:PostgreSQL error when trying to connect in python : invalid dsn: invalid connection option "username"尝试在 python 中连接时出现 PostgreSQL 错误:无效的 dsn:无效的连接选项“用户名”
【发布时间】:2018-06-04 08:41:51
【问题描述】:

所以我有这个任务: 您在位于以下位置的 PostgreSQL 服务器上有两份摘要报告可供您使用:postgres://candidate.company.org/company

用户名 = 候选密码 = abc

所以我用这段代码尝试连接数据库:

import psycopg2 as db
conn = db.connect(host='postgres://candidate.suade.org/company', database='randomname', user='candidate', password='abc', port='5432')

然后我收到错误消息:

ProgrammingError: invalid dsn: invalid connection option "username"

由于用户名是正确的,有人可以帮忙吗?

【问题讨论】:

  • connect 使用 dbname 作为 docs 的参数。

标签: python mysql database postgresql psycopg2


【解决方案1】:

请尝试以下解决方案

import psycopg2 as db
conn = db.connect(host='localhost', dbname='randomname', user='candidate', password='abc')

【讨论】:

    【解决方案2】:

    如果您使用psycopg2 库连接 Postgres DB,则连接字符串应如下所述。

    conn = psycopg2.connect(host="localhost",**user = "postgres"**,password = "postgres",database = "postgres") ;
    

    应该是 user 而不是 username 。

    【讨论】:

      【解决方案3】:

      您使用了错误的参数。在 Postgres 中,你必须使用这样的东西:

      conn = pg.DB(host="localhost", user="USERNAME", passwd="PASSWORD", dbname="DBNAME")
      

      这应该可以解决它。

      【讨论】:

      • 但我不必在 python 上使用 psycopg2 访问 postgresql,所以正如我所做的那样,我首先正确地将 psycopg2 导入为 bd,然后将其与 conn = db.connect(host="localhost",用户名=“用户名”,密码=“密码”,数据库名=“数据库名”)??或者我在哪里弄错了,因为错误来了 ProgrammingError: invalid dsn: invalid connection option "username"
      • @robertjames 应该是 user=,而不是 username=
      • 应该是密码而不是passwd。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      相关资源
      最近更新 更多