在我的烧瓶项目的第一个连接上,App Engine出现以下错误: OperationalError:(2004,“无法创建TCP / IP套接字(13)”)
通过以下代码完成连接: db = MySQLdb.connect(CLOUDSQL_HOST,CLOUDSQL_USER,CLOUDSQL_PASSWORD,db_instance)
我不明白为什么我在本地计算机上使用dev_appserver.py的代码可以正常工作,但是在云上却无法工作。
感谢您的帮助。
答案 0 :(得分:1)
在App Engine上运行时,必须使用App Engine本机UNIX套接字连接到Cloud SQL实例。因此,您可以在this example中使用类似内容:
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
cloudsql_unix_socket = os.path.join(
'/cloudsql', CLOUDSQL_CONNECTION_NAME)
db = MySQLdb.connect(
unix_socket=cloudsql_unix_socket,
user=CLOUDSQL_USER,
passwd=CLOUDSQL_PASSWORD)
else:
db = MySQLdb.connect(host='127.0.0.1', user=CLOUDSQL_USER, passwd=CLOUDSQL_PASSWORD)
您可以从控制台或使用命令CLOUDSQL_CONNECTION_NAME
获取gcloud sql instances describe YOUR_INSTANCE
字段。它将类似于:
connectionName: YOUR-PROJECT:REGION-OF-THE-INSTANCE-INSTANCE-NAME