我在PythonAnywhere上有一个Django应用程序(Python 3.4,Django 1.7)以及一个MySQL数据库。 数据库在部署的应用上运行良好。
但是,我无法将其连接到本地计算机上的应用程序。
运行python manage.py runserver
时会抛出以下错误:
django.db.utils.InterfaceError:(2003," 2003:无法连接MySQL服务器' mysql.server:3306'(提供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
而没有更多运气。
答案 0 :(得分:4)
我认为无法从远程直接连接到您的mysqlserver实例,出于安全原因,端口3306被阻止。
他们建议通过SSH隧道连接,按照link进行连接。
我不知道如果你可以在Django中进行ssh隧道,你应该写一个自定义配置。在您的PC上安装SSH隧道软件然后将Django应用程序连接到端口上的localhost是很简单的。您必须选择。
再见
答案 1 :(得分:1)
根据PythonAnyWhere文档:
打开终端并运行以下命令。
ssh -L 3333:username.mysql.pythonanywhere-services.com:3306 username@ssh.pythonanywhere.com
提供您的PAW帐户登录密码
用您的用户名替换用户名。
打开另一个终端并运行以下命令。
mysql -h 127.0.0.1 --port 3333 -u username -p
提供您的mysql密码。可在设置文件中使用。
只要您在终端2上工作,保持终端1打开。