更新
Google Cloud SQL 现在支持直接访问,因此MySQLdb
现在可以使用方言。通过 mysql 方言推荐的连接是使用 URL 格式:
mysql+mysqldb://root@/<dbname>?unix_socket=/cloudsql/<projectid>:<instancename>
mysql+gaerdbms
自 1.0 版以来已在 SQLAlchemy中弃用
我将在下面留下原始答案,以防其他人仍然觉得它有帮助。
对于那些稍后访问此问题(并且不想阅读所有评论)的人,SQLAlchemy 现在使用连接字符串/方言支持 Google Cloud SQL 版本 0.7.8(请参阅:文档):
mysql+gaerdbms:///<dbname>
例如:
create_engine('mysql+gaerdbms:///mydb', connect_args={"instance":"myinstance"})
我已提议对方言进行更新mysql+gaerdmbs://
,以支持 Google Cloud SQL API (rdbms_apiproxy
和rdbms_googleapi
) 用于从非 Google App Engine 生产实例(例如您的开发工作站)连接到 Cloud SQL。该更改还将通过将项目和实例作为字符串的一部分来稍微修改连接字符串,并且不需要通过connect_args
.
例如
mysql+gaerdbms:///<dbname>?instance=<project:instance>
这也将使您更容易将 Cloud SQL 与 Flask-SQLAlchemy 或您未明确进行create_engine()
调用的其他扩展一起使用。
如果您在从开发工作站连接到 Google Cloud SQL 时遇到问题,您可能想在此处查看我的答案 - https://stackoverflow.com/a/14287158/191902。