Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQLAlchemy thông qua Paramiko SSH

Trong trường hợp có bất kỳ ai quan tâm đến việc kết nối với Postgresql từ xa cơ sở dữ liệu qua SSH và muốn tải dữ liệu vào pandas DataFrame đây là cách thực hiện.

Giả sử chúng ta đã cài đặt cơ sở dữ liệu postgresql trên một máy chủ từ xa, chúng ta có thể ssh theo các tham số sau.

Thông số SSH:

  • IP của máy chủ:10.0.0.101
  • Cổng SSH:22 ( cổng mặc định cho SSH )
  • Tên người dùng:my_username
  • Mật khẩu:my_password

Tham số cơ sở dữ liệu:

  • Cổng:5432 ( cổng mặc định postgresql )
  • Tên cơ sở dữ liệu:db
  • Người dùng cơ sở dữ liệu:postgres_user ( tên người dùng mặc định là postgres )
  • Mật khẩu cơ sở dữ liệu:postgres_pswd ( mật khẩu mặc định là một chuỗi trống )
  • Bảng với dữ liệu của chúng tôi:MY_TABLE

Bây giờ, chúng tôi muốn kết nối với cơ sở dữ liệu này và tải dữ liệu vào DataFrame của gấu trúc:

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. Cách giải quyết MySQL innodb Đang chờ khóa siêu dữ liệu bảng trên TRUNCATE TABLE?

  2. mysql.sock không được tạo OSX

  3. Trợ giúp với truy vấn SQL để tìm ngày khả dụng tiếp theo cho hệ thống đặt chỗ

  4. Lấy dữ liệu từ Cơ sở dữ liệu JDBC vào Jtable

  5. Đặt các biến Truy vấn lớn như mysql