我在this链接后成功部署了一个应用。
部署后,我无法连接到Cloud SQL。在我的IPython笔记本中,在部署我的应用程序之前,我可以使用以下语句使用Google SDK连接到我的云实例:
cloud_sql_proxy.exe -instances="project_name:us-east1:instance_name"=tcp:3306
输入上述内容后,我会在Google Cloud Shell中收到通知
"listening on 127.0.0.1:3306 for project_name:us-east1:instance_name
ready for new connections"
然后我使用我的IPython笔记本来测试连接:
host = '127.0.0.1' (also changed to my my ip address for google cloud sql)
user = 'cloud_sql_user'
password = 'cloud_sql_password'
conn1 = pymysql.connect(host=host,
user=user,
password=password,
db='mydb')
cur1 = conn1.cursor()
本地测试结果:可以从IPython连接到Cloud SQL并查询云数据库。下一步:部署
gcloud app deploy
结果:已部署应用。但是,在导航到我的网站并在输入字段中输入名称时,它会转到我的新URL并收到错误:
OperationalError at /search/
(20033), "Can't connect to MySQL server on 127.0.0.1 (timed out))
我的主要问题是:
编辑:我根据下面用户的建议编辑了文件。我仍然收到错误'连接超时'
答案 0 :(得分:1)
找到它。将pymysql中的套接字更改为unix_socket =“您的云连接字符串名称”。让主机成为'localhost',user ='你的云用户名'和密码='你的云sql密码'
编辑:不要忘记连接字符串名称中的/ cloud / part
答案 1 :(得分:0)
这篇帖子已经有点老了,我希望你已经解决了这个问题!
你检查一下你是否正在制作这样的作品:
if os.getenv('GAE_INSTANCE'):
在文档中,他们以这种方式管理它:
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
我认为因为这个条件错误,您将DATABASES['default']['HOST']
值覆盖为'127.0.0.1'
希望这将是您正在寻找的答案!