从这个SQL workbench tutorial如何在SQL工作台中给定URI的psycopg2参数?
鉴于URI:
jdbc:redshift://sample.redshift.openbridge.io:5439/sample_database?ssl=true&sslfactory=com.amazon.redshift.ssl.NonValidatingFactory
此外,我需要的只是Username
和Password
连接到AWS上的红移服务器。
如果我使用Python中psycopg2
,我需要下列领域建立与数据库的连接:
dbname
host
port
user
password
E.g.
import psycopg2
con=psycopg2.connect(dbname= 'dbname', host='host',
port= 'port', user= 'user', password= 'pwd')
con.connect()
鉴于URI如上图所示,我计算这些值:
dbname
=sample.redshift.openbridge.io
host
=jdbc:redshift://
port
=5439
user
=用户名来连接作为如SQL工作台password
=我的用户
密码,但我想我已经试图从URI分裂的价值观是错误的:对于psycopg2
import psycopg2
dbname='sample.redshift.openbridge.io'
host='jdbc:redshift'
port=5439
user='Username'
password='Password'
con=psycopg2.connect(dbname, host, port, user, password)
OperationalError: could not translate host name "jdbc:redshift:" to address: nodename nor servname provided, or not known
什么是适当的值给出上面的URI的参数?
又如何ssl=true
和sslfactory=com.amazon.redshift.ssl.NonValidatingFactory
设置和 sample_database
数据库? 如何将它们设置为psycopg2中的con
参数?
我的环境设置:
- 的Mac OS X
- 的Python 3
psycopg2.__version__
= 2.7.3。1(DT月PQ3分机lo64)
我已经得到它一起工作:
import psycopg2
dbname='sample_database'
host='sample.redshift.openbridge.io'
port=5439
user='Username'
password='Password'
con=psycopg2.connect(dbname, host, port, user, password)
但我不知道这是为连接设置的SSL属性。
是ssl=true
和sslfactory=com.amazon.redshift.ssl.NonValidatingFactory
当我通过psycopg2
以上述方式连接?
psycopg2
自动设置jdbc:redshift
作为协议吗?
我想你'dbname'和'host'混合起来的值。 – helloV
当我交换'dbname'和'host'的值时,我得到了'OperationalError:FATAL:database“jdbc:redshift”不存在'=( – alvas
对Redshift不太了解,但是从URL来看,数据库是'sample_database'。 – helloV