无法使用PyMySQL连接到Cloud SQL

Nik*_*as9 7 python google-cloud-sql pymysql google-app-engine-python

我正在尝试从运行在Google App Engine之上的Python应用程序(使用PyMySQL 0.7.9)连接到Cloud SQL.

我的连接字符串看起来像这样(凭证当然是假的):

pymysql.connect(unix_socket='/cloudsql/gae_project_name:cloudsql_instance_name', 
                user='user', password='', db='database_name')
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是:

OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 97] Address family not supported by protocol)")

这就像PyMySQL没有意识到我正在尝试通过Unix套接字连接并尝试使用host参数的默认值(我认为是localhost)

我能够使用相同的连接字符串连接MySQLdb.

kip*_*ip2 1

显然,PyMySQL 目前在 Google App Engine 标准环境上不受支持,该环境仅运行 Python 2.7(截至 2018 年 6 月)。这是来自 GCP python 项目的维护者的:

我可以确认 python27 运行时不支持 pymysql。但是,对于大多数用例,可以通过使用 try: / except ImportError: 有条件地导入其中之一,在本地使用 pymysql,并在生产中使用 mysqldb。由于它们共享相同的接口,因此您可以使用 import as 使两个不同的库共享相同的名称,以便于在代码中使用。

有关详细信息,请参阅此Github 线程