Mysql
 sql >> база данни >  >> RDS >> Mysql

SQLAlchemy чрез Paramiko SSH

В случай, че има някой, който се интересува от свързване към отдалечен Postgresql база данни чрез SSH и иска да зареди данни в pandas DataFrame ето как да го направите.

Да предположим, че сме инсталирали Postgresql база данни на отдалечен сървър, към който можем да ssh чрез следните параметри.

SSH параметри:

  • IP на сървъра:10.0.0.101
  • SSH порт:22 (порт по подразбиране за SSH )
  • Потребителско име:my_username
  • Парола:my_password

Параметри на базата данни:

  • Порт:5432 (порт по подразбиране на postgresql )
  • Име на базата данни:db
  • Потребител на базата данни:postgres_user (потребителското име по подразбиране е postgres )
  • Парола за база данни:postgres_pswd (Паролата по подразбиране е празен низ )
  • Таблица с нашите данни:MY_TABLE

Сега искаме да се свържем с тази база данни от нашия край и да заредим данни в pandas DataFrame:

from sshtunnel import SSHTunnelForwarder
from sqlalchemy import create_engine
import pandas as pd

server = SSHTunnelForwarder(
    ('10.0.0.101', 22),
    ssh_username="my_username",
    ssh_password="my_password",
    remote_bind_address=('127.0.0.1', 5432)
    )

server.start()
local_port = str(server.local_bind_port)
engine = create_engine('postgresql://{}:{}@{}:{}/{}'.format("postgres_user", "postgres_pswd", "127.0.0.1", local_port, "db"))

dataDF = pd.read_sql("SELECT * FROM \"{}\";".format("MY_TABLE"), engine)

server.stop()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Добавяне на връзка едно към много към самореферентен родител/дете

  2. Намерете най-близкото местоположение по пощенски код?

  3. JOIN заявки срещу множество заявки

  4. Преобразуване на MyISAM в InnoDB. Благоприятно? Последствия?

  5. SQL за подреждане на буквено-цифров низ по числовата част