【问题标题】:Django PythonAnywhere (2003, "Can't connect to MySQL server (timed out)")Django PythonAnywhere(2003,“无法连接到 MySQL 服务器(超时)”)
【发布时间】:2021-12-01 07:58:09
【问题描述】:

我正在尝试设置一个 Django 项目,但我似乎无法连接到用 PythonAnywhere 制作的 MySQL 数据库。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'username$dbname',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': 'username.mysql.pythonanywhere-services.com',
    }
}

我无法使用我的用户、主机、名称和密码在 PythonAnywhere Bash 中输入数据库,但是当我尝试在 django 中执行此操作时,它显示如下:

django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'username.mysql.pythonanywhere-services.com' (timed out)")

【问题讨论】:

  • 检查您的主机似乎不正确
  • 我使用的是我在 pythonanywhere bash 中使用的同一主机进入数据库,并且与执行状态命令后出现在连接值中的主机相同
  • 您是否尝试从本地计算机连接到该数据库?如果是这样,您需要使用 ssh 隧道。见help.pythonanywhere.com/pages/…

标签: python mysql django database pythonanywhere


【解决方案1】:

在默认数据库设置中添加 PORT。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'username$dbname',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': 'username.mysql.pythonanywhere-services.com',
        'PORT': '3306'
    }
}

【讨论】:

    【解决方案2】:

    我无法修复此错误。 安装 MySQL Workbench 并使用 localhost 运行数据库。 之后,我能够运行以下代码:

    DATABASES = {
         "default": {
             "ENGINE": "django.db.backends.mysql",
             "NAME": "Mysql",
             "USER": "admin",
             "PASSWORD": "password",
             "HOST": "127.0.0.1",
             "PORT": "3306",
        }
     }
    

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 2014-03-10
      • 2014-08-22
      • 2012-07-30
      • 2014-11-08
      • 1970-01-01
      相关资源
      最近更新 更多