【问题标题】:GAE Cloud SQL connection timed outGAE Cloud SQL 连接超时
【发布时间】:2018-05-25 09:25:36
【问题描述】:

当我尝试在本地运行数据库并且服务器正在请求请求时,一切正常,但是当我尝试将数据库和服务器上传到 GAE 时,我总是收到此错误:

OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'xx.xxx.xx.xx' ([Errno 110] connection timed out)")

我正在尝试实现稳定的连接,而不必在我的本地机器上运行 mysql。

感谢任何人的帮助。

【问题讨论】:

    标签: python mysql python-2.7 google-app-engine google-cloud-sql


    【解决方案1】:

    您确实可以从 App Engine 使用 Cloud SQL,而无需运行自己的 MySQL 实例。为此,您可以查看official documentation 中的信息。

    确保您正确配置了环境变量(您可以直接从app.yaml 配置文件中执行此操作)并导入MySQLdb 库,如同一页面中的corresponding section 中所述。

    在那里,您将找到一些示例代码以及有关如何在开发和生产环境中测试您的应用程序的其他信息。

    【讨论】:

    • 是否可以使用flask 框架和sql alchemy 来做到这一点?抱歉,这是我忘记提及的事情。我看到了有关使用烧瓶和 sql alchemy 执行此操作的文档,但有一行“export SQLALCHEMY_DATABASE_URI=mysql+pymysql://[USER_NAME]:[PASSWORD]@127.0.0.1:3306/[DATABASE_NAME]”我不太明白放在哪里。链接:cloud.google.com/appengine/docs/flexible/python/…
    • 当然。事实上,documentation for App Engine Flexible 提出了同样的例子,使用 FlaskSQLAlchemy
    • 现在我看到了您的最后一次编辑。您提到的该命令用于导出包含 URI 的环境变量,以使用 SQLAlchemy 访问数据库。您应该用相应的属性替换方括号之间的项目。
    • 我真的不明白我应该在哪里导出连接字符串
    • 如果您在 Linux 环境中运行命令,您只需从用于其余命令的 CLI 导出该字符串。如果您通过 Cloud Shell 执行所有操作,您也可以在那里导出变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2023-03-16
    • 2013-01-24
    • 2019-04-18
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多