【问题标题】:Django: remotely access a PythonAnywhere MySQL databaseDjango:远程访问 PythonAnywhere MySQL 数据库
【发布时间】:2015-05-31 11:35:11
【问题描述】:

我在 PythonAnywhere 上有一个 Django 应用程序(Python 3.4、Django 1.7)以及一个 MySQL 数据库。 数据库在已部署的应用上运行良好。

但是,我无法将其连接到本地计算机上的应用程序。

运行python manage.py runserver时抛出以下错误:

django.db.utils.InterfaceError: (2003, "2003: Can't connect to MySQL server on 'mysql.server:3306' (8 nodename or servname provided, or not known)", None)

这些是我使用的属性:

DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': '<username>$<database_name>',
        'USER': '<username>',
        'PASSWORD': '<databse_password>',
        'HOST': 'pythonanywhere.com'
    }
}

我还尝试将mysql.servermysql.server.pythonanywhere.com 用作HOST,但没有任何运气。

【问题讨论】:

    标签: python mysql django pythonanywhere


    【解决方案1】:

    我认为不可能从远程直接连接到您的 mysqlserver 实例,出于安全原因,端口 3306 被阻止。 他们建议通过 SSH 隧道连接,请遵循此link
    我不知道您是否可以在 Django 中进行 ssh 隧道,您应该编写自定义配置。在您的 PC 上安装 SSH 隧道软件,然后将您的 Django 应用程序连接到您必须选择的端口上的 localhost 会更简单。
    再见

    【讨论】:

      【解决方案2】:

      根据 PythonAnyWhere 文档:

      1. 打开终端并运行以下命令。

        ssh -L 3333:username.mysql.pythonanywhere-services.com:3306 username@ssh.pythonanywhere.com

      提供您的 PAW 帐户登录密码

      用您的用户名替换用户名。

      1. 打开另一个终端并运行以下命令。

        mysql -h 127.0.0.1 --port 3333 -u 用户名-p

      提供您的 mysql 密码。在设置文件中可用。

      只要您在终端 2 上工作,就让终端 1 保持打开状态。

      Accessing PythonAnyWhere MySQL from outside

      【讨论】:

        猜你喜欢
        • 2010-12-14
        • 1970-01-01
        • 2017-11-03
        • 2013-02-05
        • 2013-05-03
        • 2017-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多