如何使用Python连接到云SQL



使用Python连接到云SQL并不总是那么简单。

根据上下文的不同,有时您必须连接到Unix域套接字,允许列出TCP连接的IP地址,并在本地运行Cloud SQL Auth代理。确保这些连接的安全是另一个挑战:您可能必须管理SSL证书、防火墙规则、IP地址等。

是否有推荐的方法使用Python以安全简单的方式连接到云SQL?

是的,确实有云SQL Python连接器,这是一个Python包,它使从任何地方(本地机器、云运行、应用程序引擎、云函数等(连接到云SQL既简单安全

Python连接器是Cloud SQL连接器库之一(也有Java、Go和Node版本(。

连接器与其他方法有何不同?

云SQL连接器库提供以下好处:

  • IAM授权:连接器使用IAM权限来控制可以连接到您的云SQL实例的人员和内容
  • 改进的安全性:连接器在客户端连接器和服务器端代理之间使用强大、更新的TLS 1.3加密和身份验证,独立于数据库协议
  • 方便:连接器取消了使用和分发SSL证书、管理防火墙或源/目标IP地址的要求
  • IAM数据库身份验证(可选(:连接器提供对Cloud SQL的IAM数据库自动身份验证功能的支持

如何使用Python连接器。。。代码是什么样子的?

基本用法(使用SQLAlchemy(

from google.cloud.sql.connector import Connector, IPTypes
import sqlalchemy
# initialize Cloud SQL Connector
connector = Connector()
# SQLAlchemy database connection creator function
def getconn():
conn = connector.connect(
"project:region:instance-name", # Cloud SQL Instance Connection Name
"pg8000",
user="my-user",
password="my-password",
db="my-db-name",
ip_type=IPTypes.PUBLIC # IPTypes.PRIVATE for private IP
)
return conn
# create SQLAlchemy connection pool
pool = sqlalchemy.create_engine(
"postgresql+pg8000://",
creator=getconn,
)
# interact with Cloud SQL database using connection pool
with pool.connect() as db_conn:
# query database
result = db_conn.execute("SELECT * from my_table").fetchall()
# Do something with the results
for row in result:
print(row)
# close Cloud SQL Connector
connector.close()

有交互式的";入门;Colab笔记本向您展示了如何使用Cloud SQL Python连接器,而无需自己编写一行代码!笔记本电脑将根据您在Cloud SQL中使用的数据库引擎自动使用支持的数据库驱动程序。

  • PostgreSQL笔记本,使用pg8000
  • MySQL笔记本,使用pymysql
  • SQL Server Notebook,使用pytds

它能与流行的web框架一起工作吗?

是的,Python连接器可以很容易地用于web框架,如Flask-SQLAlchemy(和Flask(、FastAPI等。

  • Flask SQLAlchemy代码
  • FastAPI代码

相关内容

  • 没有找到相关文章

最新更新