Django:远程访问 PythonAnywhere MySQL 数据库
Django: remotely access a PythonAnywhere MySQL database
我在 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 nor 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.server
和 mysql.server.pythonanywhere.com
作为 HOST
没有更多的运气。
我认为无法从远程直接连接到您的 mysqlserver 实例,出于安全原因,端口 3306 已被阻止。
他们建议通过 SSH 隧道连接,请遵循此 link。
我不知道如果您可以在 Django 中执行 ssh 隧道,您可能应该编写自定义配置。在您的 PC 上安装 SSH 隧道软件,然后将您的 Django 应用程序连接到您必须选择的端口上的本地主机会更简单。
再见
根据 PythonAnyWhere 文档:
打开一个终端并运行下面的命令。
ssh -L 3333:username.mysql.pythonanywhere-services.com:3306 用户名@ssh.pythonanywhere.com
提供您的 PAW 帐户登录密码
用您的用户名替换用户名。
打开另一个终端并运行下面的命令。
mysql -h 127.0.0.1 --port 3333 -u 用户名 -p
提供您的 mysql 密码。在设置文件中可用。
只要您在终端 2 上工作,就保持终端 1 打开。
我在 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 nor 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.server
和 mysql.server.pythonanywhere.com
作为 HOST
没有更多的运气。
我认为无法从远程直接连接到您的 mysqlserver 实例,出于安全原因,端口 3306 已被阻止。
他们建议通过 SSH 隧道连接,请遵循此 link。
我不知道如果您可以在 Django 中执行 ssh 隧道,您可能应该编写自定义配置。在您的 PC 上安装 SSH 隧道软件,然后将您的 Django 应用程序连接到您必须选择的端口上的本地主机会更简单。
再见
根据 PythonAnyWhere 文档:
打开一个终端并运行下面的命令。
ssh -L 3333:username.mysql.pythonanywhere-services.com:3306 用户名@ssh.pythonanywhere.com
提供您的 PAW 帐户登录密码
用您的用户名替换用户名。
打开另一个终端并运行下面的命令。
mysql -h 127.0.0.1 --port 3333 -u 用户名 -p
提供您的 mysql 密码。在设置文件中可用。
只要您在终端 2 上工作,就保持终端 1 打开。