使用连接字符串在 psycopg2 中创建连接池
Creating connection pool in psycopg2 using connection string
我通过将连接字符串传递给 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://",但它不起作用。
配置 ['database']['server'] 似乎在末尾添加了“:5432”。您将需要更改配置以将其删除,或者将该数据条目解析为两部分,即真实服务器和端口号。
我通过将连接字符串传递给 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://",但它不起作用。
配置 ['database']['server'] 似乎在末尾添加了“:5432”。您将需要更改配置以将其删除,或者将该数据条目解析为两部分,即真实服务器和端口号。