Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQLAlchemy przez Paramiko SSH

Na wypadek, gdyby ktoś był zainteresowany połączeniem się ze zdalnym Postgresql bazy danych przez SSH i chce załadować dane do pandy DataFrame oto jak to zrobić.

Załóżmy, że zainstalowaliśmy bazę danych postgresql na zdalnym serwerze, do której możemy ssh za pomocą następujących parametrów.

Parametry SSH:

  • IP serwera:10.0.0.101
  • Port SSH:22 (domyślny port dla SSH )
  • Nazwa użytkownika:my_username
  • Hasło:my_password

Parametry bazy danych:

  • Port:5432 (domyślny port Postgresql )
  • Nazwa bazy danych:db
  • Użytkownik bazy danych:postgres_user (domyślna nazwa użytkownika to postgres )
  • Hasło do bazy danych:postgres_pswd (domyślne hasło to pusty ciąg )
  • Tabela z naszymi danymi:MY_TABLE

Teraz chcemy połączyć się z tą bazą danych po naszej stronie i załadować dane do pandy 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. Pobieranie liczby wierszy wstawiania/aktualizacji z ON DUPLICATE KEY UPDATE

  2. Jak naprawić ten błąd mysql_fetch_assoc() oczekuje, że parametr 1 będzie zasobem, podanym w wartości logicznej?

  3. Kiedy używać SQL_NO_CACHE

  4. MySQL Dołącz do tej samej tabeli

  5. Błędy Instalacja mysql2 gem za pośrednictwem Bundlera