我需要从远程数据库中获取一些数据。这里的代码连接:

import psycopg2

params = {
  'dbname': 'some_db',
  'username': 'user',
  'password': 'password',
  'host': '333.333.333.333',
  'port': 3333
}

conn = psycopg2.connect(**params)

然后我尝试执行查询:
cur = conn.cursor()
cur.execute("SELECT * FROM sometable")

在那之后,我得到了异常(exception):
psycopg2.ProgrammingError: relation sometable does not exist

现在,如果我通过 psql 从同一台机器连接到具有完全相同参数的数据库:
psql --dbname=some_db --username=user --password=password --host=333.333.333.333 --port=3333

并尝试执行查询:
SELECT * FROM sometable;

我得到的结果没有任何错误。它不仅发生在一张表上,而且发生在该数据库中的所有表上。

编辑

我在参数上没有什么错误。我用不
'username': 'user',

但:
'user': 'user',

最佳答案

尝试连接不同的变量名称,例如:

params = {
  'database': 'some_db',
  'user': 'user',
  'password': 'password',
  'host': '333.333.333.333',
  'port': 3333
}

看:

http://initd.org/psycopg/docs/module.html

关于postgresql - psycopg2 查询远程数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24814951/

10-15 18:24
查看更多