通過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隧道訪問遠程數據庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM