python-3.x - 使用连接字符串在 psycopg2 中创建连接池
问题描述
我通过将连接字符串传递给 psycopg2.connect 创建了一个连接对象,它工作正常。
所有设置都保存在字典中并以这种方式调用:
import psycopg2
connection_string = configs['database']['type'] + "://" + configs['database']['user'] + ":" + configs['database']['pass'] + "@" + configs['database']['server'] + '/' + configs['database']['db']
connection = psycopg2.connect(connection_string)
但我想创建一个简单的连接池并传递相同的设置会产生错误
import psycopg2
from psycopg2 import pool
connection_pool = psycopg2.pool.SimpleConnectionPool(1,100,
user=configs['database']['user'],
password=configs['database']['pass'],
host=configs['database']['type'] + "://" + configs['database']['server'],
port=5432,
database=configs['database']['db'])
我收到此错误消息:
psycopg2.OperationalError: could not translate host name "xxxxx.xxxxx.rds.amazonaws.com:5432" to address: Unknown host
我尝试了不同的主机值,例如在主机名的开头添加“postgresql://”,但它不起作用。
解决方案
看起来 configs['database']['server'] 的末尾添加了“:5432”。您要么需要更改配置以将其删除,要么将该数据条目解析为两部分,即真实服务器和端口号。
推荐阅读
- c - EOF 和未使用的二维数组的空闲部分
- javascript - ReactJs 函数调用,而是看到一个表达式 no-unused-expressions
- django - 按模型 B 对模型 A 进行排名
- javascript - 为什么我收到此错误 chrome-extension://invalid
- python - 按条件和列中的最小值过滤 Pandas 数据框
- java - 我正在使用 JOptionPane,但我不确定为什么当我尝试为第一个“?”输入项目 ID 时它不起作用。它在我的代码中询问
- dialogflow-es - 如何保持活动对话流火力库功能以避免每次调用都浪费新的连接时间
- mysql - 如何使用以前的值计算百分比增加/减少
- r - 无法将值存储在 for 循环内的数值数组中
- javascript - Webpack 无法识别 ractive-loader