• 通过SSH隧道的本地转发实现Django连接远程数据库


    SSH连接命令

    默认连接的端口为22

    1. 使用私钥

    ssh -p connect_port user_name@host -i your_private_identity
    

    2. 使用用户密码

    ssh user_name@host
    

    创建SSH隧道

    ssh -L 7878:localhost:3306 -p ssh_port user_name@remote_host -i your_private_identity
    

    本机端口:目标host:目标端口

    这里的目标host是localhost的原因是:已经使用ssh连接到目标主机,localhost指的是目标主机的localhost,将localhost替换成目标主机ip亦可

    通过SSH隧道的本地转发实现Django连接远程数据库

    1. 创建一个ssh隧道,将远程数据库映射到本地端口

      ssh -L local_port:localhost:<remote mysql port> <username>@<remote host>
      

      ssh连接进行时,可以通过访问本地端口来访问远程数据库

    2. 在Django的settings中配置数据库

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': db_name,
              'USER': remote_mysql_user, # 远程数据库账号密码
              'PASSWORD': remote_mysql_password,
              'HOST': "localhost",
              'PORT': local_port, # 远程数据库映射到本地的端口
              'OPTIONS': {'init_command': 'SET default_storage_engine=INNODB;'}
              }
      }
      

    至此,在使用Django的model时,将通过ssh隧道访问远程数据库

  • 相关阅读:
    【JavaScript】underscore
    【JavaScript】jQuery
    【JavaScript】浏览器
    【JavaScript】对象
    【JavaScript】函数
    【JavaScript】快速入门
    【python】异步IO
    【python】web开发
    【python】TCP/IP编程
    【python】常用第三方模块
  • 原文地址:https://www.cnblogs.com/luozx207/p/11765031.html
Copyright © 2020-2023  润新知