问题标签 [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.
python - 无法从 Python3 打开到 PostgreSQL 的连接
我遇到了一个奇怪的问题,我无法从 Python 3.2 安装连接到 PostgreSQL。我正在运行 Fedora 15,并使用 yum 从 Fedora 存储库安装了 Python3 和 PostgerSQL9。有没有人对我为什么会看到这个问题以及如何纠正它有任何想法?谷歌搜索没有出现任何东西。
我更改了用户名、密码和数据库,但我的 pg_hba.conf 文件是正确的。
附带说明一下,如果我尝试使用不同的用户、密码、数据库组合进行连接,并且如果我使用pq://user:password@host/database
连接字符串而不是关键字来连接本地主机和远程主机,则会出现同样的错误。
python - py-postgresql 多线程问题
我发现在重负载下,我的金字塔网络应用程序会抛出 py-postgresql 异常,例如postgresql.exceptions.ProtocolError
. 一些搜索显示,py-postgresql 不是线程安全的,一个连接不能被多个线程同时使用。
我试图建立某种池机制,但我仍然得到 ProtocolErrors :(
我究竟做错了什么?
首先,我创建多个连接对象:
池中的每个对象都包含db_lock = threading.Lock()
一个与数据库的连接self.conn = postgresql.open( conn_string )
然后我尝试获取连接上的锁定并使用它做一些工作。这段代码可以由多个线程同时执行,但我认为work
由于锁定,没有两个线程可以同时在一个连接上运行。
也许我的代码有缺陷,或者我误解了 py-postgresql 的“线程不安全”的性质?请帮我!
python - 使用带有加密密码的 py-postgresql
在 python 中,我可以使用以下代码连接 PostgreSQL 数据库:
但在上面的行中,我必须输入明文密码,然后py-postgresql
将其散列以与存储在 PostgreSQL 数据库中的散列值进行比较。如果我想使用MD5
自己散列的密码,这意味着我不希望 py-postgresql 为我做散列。我该怎么做?我试图修改 的源代码py-postgresql
,但我找不到散列发生在哪里。然后我在设置中找到py-postgresql
我可以启用 SSL 模式。有人可以给我一个关于如何设置它的简单例子吗?
亲切的问候。
python - 获取postgresql唯一日期的内存有效方式?
我有一个包含大约 3000 万个条目的数据库,数量很多,除了处理更大的数据库条目时我不希望有任何问题。
但是使用 py-postgresql 和.prepare()
语句我希望我可以在“ yield
”的基础上获取条目,从而避免只用来自数据库的结果来填满我的内存,而我显然不能?
这是我到目前为止所得到的:
甚至在if not row['time'] in uniqueue_days:
我用完内存之前,考虑到result()
可能在遍历它们之前获取所有结果,这并不奇怪?有没有办法让库postgresql
“分页”或批量处理结果,比如每轮 60k,或者甚至重新处理查询以完成更多工作?
提前致谢!
编辑:应该提到数据库中的日期是 Unix 时间戳,我打算在将它们%Y-%m-%d
添加到列表之前将它们转换为格式uniqueue_days
。
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
postgresql - Py-postgresql:WHERE param = None 不工作
我正在使用python3.6
和py-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
,但有没有办法使这项工作?