我在Google AppEngine上使用Flask的应用程序,我用这个常量SQLALCHEMY_DATABASE_URI = 'mysql://user:pass@ip_address/database'配置数据库。但是在生产机器上显示这个错误:
OperationalError: (_mysql_exceptions.OperationalError) (2004, "Can't create TCP/IP socket (-1)")
我用requirements.txt正确地配置了库,并在app.yaml文件上添加了MySQLdb。
在生产环境中,应该对SQLALCHEMY_DATABASE_URI使用这种语法
mysql+mysqldb://root@/<DATABASE_NAME>?unix_socket=/cloudsql/<APPENGINE_PROJECT>:<SQL_INSTANCE_ID>
是否启用了计费功能?套接字的第一个限制-
虽然App Engine支持套接字,但有一定的限制以及使用套接字时需要注意的行为:
Sockets只适用于付费应用。