问题标签 [py-postgresql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2801 浏览

python - 无法从 Python3 打开到 PostgreSQL 的连接

我遇到了一个奇怪的问题,我无法从 Python 3.2 安装连接到 PostgreSQL。我正在运行 Fedora 15,并使用 yum 从 Fedora 存储库安装了 Python3 和 PostgerSQL9。有没有人对我为什么会看到这个问题以及如何纠正它有任何想法?谷歌搜索没有出现任何东西。

我更改了用户名、密码和数据库,但我的 pg_hba.conf 文件是正确的。

附带说明一下,如果我尝试使用不同的用户、密码、数据库组合进行连接,并且如果我使用pq://user:password@host/database连接字符串而不是关键字来连接本地主机和远程主机,则会出现同样的错误。

0 投票
1 回答
627 浏览

python - py-postgresql 多线程问题

我发现在重负载下,我的金字塔网络应用程序会抛出 py-postgresql 异常,例如postgresql.exceptions.ProtocolError. 一些搜索显示,py-postgresql 不是线程安全的,一个连接不能被多个线程同时使用。

我试图建立某种池机制,但我仍然得到 ProtocolErrors :(

我究竟做错了什么?

首先,我创建多个连接对象:

池中的每个对象都包含db_lock = threading.Lock()一个与数据库的连接self.conn = postgresql.open( conn_string )

然后我尝试获取连接上的锁定并使用它做一些工作。这段代码可以由多个线程同时执行,但我认为work由于锁定,没有两个线程可以同时在一个连接上运行。

也许我的代码有缺陷,或者我误解了 py-postgresql 的“线程不安全”的性质?请帮我!

0 投票
1 回答
1301 浏览

python - 使用带有加密密码的 py-postgresql

在 python 中,我可以使用以下代码连接 PostgreSQL 数据库:

但在上面的行中,我必须输入明文密码,然后py-postgresql将其散列以与存储在 PostgreSQL 数据库中的散列值进行比较。如果我想使用MD5自己散列的密码,这意味着我不希望 py-postgresql 为我做散列。我该怎么做?我试图修改 的源代码py-postgresql,但我找不到散列发生在哪里。然后我在设置中找到py-postgresql我可以启用 SSL 模式。有人可以给我一个关于如何设置它的简单例子吗?

亲切的问候。

0 投票
2 回答
152 浏览

python - 获取postgresql唯一日期的内存有效方式?

我有一个包含大约 3000 万个条目的数据库,数量很多,除了处理更大的数据库条目时我不希望有任何问题。

但是使用 py-postgresql 和.prepare()语句我希望我可以在“ yield”的基础上获取条目,从而避免只用来自数据库的结果来填满我的内存,而我显然不能?

这是我到目前为止所得到的:

甚至在if not row['time'] in uniqueue_days:我用完内存之前,考虑到result()可能在遍历它们之前获取所有结果,这并不奇怪?有没有办法让库postgresql“分页”或批量处理结果,比如每轮 60k,或者甚至重新处理查询以完成更多工作?

提前致谢!

编辑:应该提到数据库中的日期是 Unix 时间戳,我打算在将它们%Y-%m-%d添加到列表之前将它们转换为格式uniqueue_days

0 投票
1 回答
9112 浏览

postgresql - psql 可以连接到 unix 域套接字,但具有相同参数的 py-postgresql 得到“权限被拒绝”

问题描述:

我的系统用户是milosz,映射到 PostgreSQLproject_great中的用户pg_ident.conf。我正在使用对等身份验证通过 unix 域套接字连接到 PostgreSQL 数据库。此连接方法在使用 时有效,但在使用Python 脚本中的相同参数psql时无效。py-postgresql

在这里,我使用以下方法成功连接到数据库psql

这里是database_test.py

在这里,我试图通过运行连接到数据库./database_test.py

由于两个连接的参数表面上是相同的,而且我对套接字及其包含目录的权限相当开放,我不知道问题是什么。使用 TCP 不是解决方案;我想使用 unix 域套接字。py-postgresql 文档表明使用 unix 域套接字进行连接应该可以工作。

配置:

pg_hba.conf:

pg_ident.conf:

postgresql.conf:

这是我的套接字目录的权限:

PostgreSQL 用户project_great已被授予数据库project_great的所有权限,并且用户和数据库都存在。

我没有~/.pgpass.

环境:

  • Ubuntu 13.10
  • 蟒蛇 3.3
  • PostgreSQL 9.3
  • py-postgresql 1.1.0
0 投票
1 回答
82 浏览

postgresql - Py-postgresql:WHERE param = None 不工作

我正在使用python3.6py-postgresql==1.2.1。我有以下声明:

db.prepapre("SELECT * FROM seasons WHERE user_id=$1 AND season_id=$2 LIMIT 1),其中 season_id 可以为 NULL。

我希望能够season_id通过None作为NULL 获得最新的记录$2 param,但它不起作用。相反,我需要创建第二条语句: db.prepapre("SELECT * FROM seasons WHERE user_id=$1 AND season_id IS NULL LIMIT 1)

它必须与season_id = NULL不工作有关season_id IS NULL,但有没有办法使这项工作?