從這個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