我正在尝试连接到云sql中的postgres实例。我已经设置好了一切,如果ssl加密关闭,我就可以连接到它。但现在我戴上了它,我正在尝试连接,但遇到了一些错误。
def run():
connector = Connector()
def getconn():
conn = connector.connect(
os.getenv("CONNECTION_NAME"),
"pg8000",
user = os.getenv('DB_USERNAME'),
password = os.getenv("DB_PASSWORD"),
db=os.getenv('DB_NAME'),
ip_type= IPTypes.PRIVATE
)
return conn
pool = sqlalchemy.create_engine(
"postgresql+pg8000://",
creator=getconn,
pool.execute("CREATE TABLE........;")
所有证书都以字符串的形式存储在秘密管理器中,所以我使用env变量来获取它们,这就是我使用cadata的原因。但是遇到此错误cadata不包含证书为什么会出现此错误?
我建议使用Cloud SQL Python连接器从Python连接到Cloud SQL,因为它将为您生成SSL上下文,这意味着无需管理SSL证书!它还具有不需要授权网络等的额外好处。
您可以找到Python连接器的代码示例,类似于用于建立TCP连接的代码示例。
还有一个交互式入门Colab Notebook,它将引导您使用Python连接器,而无需更改一行代码!
它使连接到云SQL变得既简单又安全。