Django PythonAnywhere (2003, "Can't connect to MySQL server (timed out)" )



我试图设置一个Django项目,我似乎无法连接到MySQL数据库在PythonAnywhere。

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)")

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

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

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

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

确保你可以连接到django外部的数据库。例如:通过Shell或MySQLWorkBench。

我家里的wifi一切正常。但我在使用公共wifi时也遇到了同样的错误。我使用的数据库提供商(Azure)似乎阻止了访问。当这个错误发生时,Shell连接和MySQLWorkBench将不能正常工作。

最新更新