2017-10-18 85 views
0

從這個SQL workbench tutorial如何在SQL工作臺中給定URI的psycopg2參數?

鑑於URI:

jdbc:redshift://sample.redshift.openbridge.io:5439/sample_database?ssl=true&sslfactory=com.amazon.redshift.ssl.NonValidatingFactory

此外,我需要的只是UsernamePassword連接到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=truesslfactory=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=truesslfactory=com.amazon.redshift.ssl.NonValidatingFactory當我通過psycopg2以上述方式連接?

psycopg2自動設置jdbc:redshift作爲協議嗎?

+0

我想你'dbname'和'host'混合起來的值。 – helloV

+0

當我交換'dbname'和'host'的值時,我得到了'OperationalError:FATAL:database「jdbc:redshift」不存在'=( – alvas

+0

對Redshift不太瞭解,但是從URL來看,數據庫是'sample_database'。 – helloV

回答

1

從網址:

jdbc:redshift://sample.redshift.openbridge.io:5439/sample_database?ssl=true&sslfactory=com.amazon.redshift.ssl.NonValidatingFactory

host: sample.redshift.openbridge.io 
port: 5439 
database: sample_database 
相關問題