我在PythonAnywhere上有一个Django应用(Python 3.4,Django 1.7),还有一个MySQL数据库。数据库在部署的应用上运行良好。
然而,我无法将它连接到本地机器上的应用程序。
当我运行python manage.py runserver
时,抛出了以下错误:
django.db.utils.InterfaceError:(2003年,"2003年:无法连接到'mysql.server:3306'上的MySQL服务器(8提供了节点名或服务器名,或未知)",无)
以下是我使用的属性:
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
没有任何更多的运气。
3条答案
按热度按时间unftdfkk1#
我认为远程直接连接到你的mysqlserver示例是不可能的,出于安全考虑,3306端口被封锁了。他们建议通过SSH隧道连接,请遵循link。
我不知道如果你可以在Django中使用SSH隧道,你应该写一个自定义配置。在你的PC上安装SSH隧道软件,然后将你的Django应用程序连接到本地主机的端口,这会更简单。
再见
2ic8powd2#
根据PythonAnyWhere文档:
1.打开一个终端并运行下面的命令。
ssh -L 3333:用户名. mysql. pythonanywhere-服务网站:3306username@ssh.pythonanywhere.com
提供您的PAW帐户登录密码
将username替换为您的用户名。
1.打开另一个终端并运行下面的命令。
mysql -h127.0.0.1--端口3333 -u用户名-p
提供你的mysql密码。在设置文件中可用。
只要您在端子2上工作,就保持端子1打开。
Accessing PythonAnyWhere MySQL from outside
ckx4rj1h3#
只有付费帐户有权限访问mysql数据库的remoteserver