Update
Google Cloud SQL 现在支持直接访问,因此MySQLdb
现在可以使用方言。建议通过 mysql 方言的连接使用 URL 格式:
mysql+mysqldb://root@/<dbname>?unix_socket=/cloudsql/<projectid>:<instancename>
mysql+gaerdbms
已被弃用 https://docs.sqlalchemy.org/en/latest/dialects/mysql.html?highlight=cloudsql#module-sqlalchemy.dialects.mysql.gaerdbms自 1.0 版以来在 SQLAlchemy 中
我将原始答案留在下面,以防其他人仍然觉得有帮助。
对于那些稍后访问此问题(并且不想阅读所有评论)的人,SQLAlchemy 现在从 0.7.8 版本开始使用连接字符串/方言支持 Google Cloud SQL(请参阅:docs http://docs.sqlalchemy.org/en/rel_0_7/dialects/mysql.html#module-sqlalchemy.dialects.mysql.gaerdbms):
mysql+gaerdbms:///<dbname>
E.g.:
create_engine('mysql+gaerdbms:///mydb', connect_args={"instance":"myinstance"})
我提出了一个update http://www.sqlalchemy.org/trac/ticket/2649 to the mysql+gaerdmbs://
支持 Google Cloud SQL API 的方言 (rdbms_apiproxy
and rdbms_googleapi
)用于从非 Google App Engine 生产实例(例如您的开发工作站)连接到 Cloud SQL。此更改还将通过将项目和实例包含在字符串中来稍微修改连接字符串,并且不需要通过单独传递connect_args
.
E.g.
mysql+gaerdbms:///<dbname>?instance=<project:instance>
这也将使您可以更轻松地将 Cloud SQL 与 Flask-SQLAlchemy 或其他扩展一起使用,而您无需明确创建create_engine()
call.
如果您在从开发工作站连接到 Google Cloud SQL 时遇到问题,您可能需要查看我的答案 -https://stackoverflow.com/a/14287158/191902 https://stackoverflow.com/a/14287158/191902.