如何通过ssh隧道将Django连接到远程MySQL数据库?

时间:2020-10-18 10:17:57

标签: mysql django ssh ssh-tunnel

我可以使用带有hostuserpassword的ssh隧道访问远程MySQL数据库。

我可以使用带有SSH HostnameSSH UsernameSSH Password的ssh隧道访问MySQL Workbench中的数据库。

我也可以使用带有HostUser namePassword的ssh隧道访问Pycharm。

我正在尝试将Django连接到MySQL数据库。 是否可以在Django设置文件中的这些数据库设置中添加SSH设置,并可以通过Django进行访问?

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  
        'NAME': '<DATABASE NAME>',                     
        'USER': '<USER NAME>',
        'PASSWORD': '<PASSWORD>',
        'HOST': '<HOST>', 
        'PORT': '3306'    
    }
}

1 个答案:

答案 0 :(得分:0)

我认为您可以通过集成sshtunnel软件包来做到这一点。

如果您完全控制何时建立数据库连接,则可以在SQL代码周围放置SSHTunnelForwarder包装器,并且您在with语句中执行的任何SQL代码都可以连接到数据库-但外部代码该声明不会。因此,这在您使用Django时也无济于事,因为它的MySQL代码隐藏在Django库的深处,并用with语句包装起来会非常棘手。