Kết nối SSH Python
Nhiều cơ sở dữ liệu MySQL được cấu hình để chấp nhận kết nối từ các máy chủ khác trên mạng cục bộ và sẽ từ chối kết nối từ các máy từ xa. Thông thường, bạn có thể giải quyết vấn đề này bằng cách tạo kết nối đường hầm SSH để đăng nhập vào máy, sau đó mở kết nối cơ sở dữ liệu và ánh xạ cổng cơ sở dữ liệu tới cổng trên máy cục bộ của bạn. Nhưng làm thế nào bạn có thể làm điều đó từ tập lệnh Python? Show Chà, nhờ các gói Python 0, bạn có thể tạo kết nối SSH bên trong tập lệnh Python của mình và kết nối với máy chủ MySQL từ xa một cách an toàn và trả về kết quả truy vấn của bạn trong khung dữ liệu Pandas. Đây là cách nó được thực hiệnTải các góiMở tài liệu Python hoặc sổ ghi chép Jupyter và tải các gói 1, 0, 3 và sshtunnel , bao gồm mô-đun 5 từ sshtunnel . Bạn có thể cài đặt chúng bằng cách sử dụng 7 nếu chúng chưa có trên máy của bạn
Định cấu hình thông tin đăng nhập của bạnTiếp theo, tạo một số biến cấu hình để giữ thông tin đăng nhập của bạn. Bạn sẽ cần địa chỉ IP của máy chủ SSH, cùng với tên người dùng và mật khẩu. Bạn cũng sẽ cần tên người dùng, mật khẩu và tên cơ sở dữ liệu MySQL
Mở một đường hầm SSHĐể làm cho mã cuối cùng sạch hơn và cho phép chúng tôi sử dụng lại mã đó, chúng tôi sẽ tạo một số chức năng để xử lý từng tác vụ. Chức năng đầu tiên của chúng tôi sử dụng mô-đun 5 để tạo một đường hầm SSH và cổng chuyển tiếp nó tới một cổng trên máy cục bộ, sau đó nó bắt đầu kết nối. Bạn có thể sử dụng cờ 0 để bật gỡ lỗi để kiểm tra mọi thứ đang hoạt động
Kết nối với MySQL qua đường hầm SSHChức năng tiếp theo sử dụng PyMySQL để tạo kết nối đến máy chủ MySQL. Điều này sẽ được chạy sau khi đường hầm SSH đã được mở. Cổng MySQL sẽ được ánh xạ tới 1 từ đối tượng 2 và được lưu trữ trong toàn cầu 3
Chạy truy vấn SQL của bạnĐể chạy một truy vấn cơ sở dữ liệu, chúng ta có thể tạo một trình bao bọc cho hàm Pandas 4. Điều này nhận một truy vấn SQL và 3 toàn cầu và trả về kết quả MySQL được đặt trong khung dữ liệu Pandas
Ngắt kết nối và đóng đường hầmCuối cùng, chúng tôi cần một số chức năng để dọn dẹp khi chúng tôi hoàn thành. Cái đầu tiên ngắt kết nối khỏi máy chủ MySQL bằng cách sử dụng chức năng 6, trong khi cái thứ hai đóng đường hầm SSH
Chạy mãCuối cùng, chúng ta có thể chạy các lệnh theo thứ tự sau. Đầu tiên, chúng tôi sẽ kết nối với máy chủ từ xa thông qua SSH và tạo một đường hầm SSH, sau đó chúng tôi sẽ kết nối với cơ sở dữ liệu MySQL trên máy chủ từ xa bằng đường hầm, sau đó chúng tôi sẽ chạy truy vấn và trả về một khung dữ liệu Pandas chứa kết quả Khi điều đó chạy, chúng tôi sẽ ngắt kết nối khỏi MySQL và đóng đường hầm SSH. Bạn cũng có thể sử dụng mã tương tự để chèn dữ liệu vào cơ sở dữ liệu MySQL bằng PyMySQL Mô-đun Python nào là tốt nhất cho SSH?Paramiko là Python thuần 1 (3. 6+) triển khai giao thức SSHv2 2, cung cấp cả chức năng máy khách và máy chủ. Nó cung cấp nền tảng cho thư viện SSH cấp cao Fabric, đây là thứ chúng tôi khuyên bạn nên sử dụng cho các trường hợp sử dụng máy khách phổ biến như chạy các lệnh trình bao từ xa hoặc truyền tệp.
Cổng nào được sử dụng cho kết nối SSH trong Python?SSH cổng 22
. Cổng được sử dụng cho giao tiếp Secure Shell (SSH) và cho phép truy cập quản trị từ xa vào VM. Nói chung, lưu lượng được mã hóa bằng xác thực mật khẩu.
Làm cách nào để tạo máy chủ SSH bằng Python?Hướng dẫn SSH Python . Cài đặt Kết nối với SSH Kết nối bằng mật khẩu Kết nối bằng khóa SSH Chạy các lệnh qua SSH Phần kết luận Người giới thiệu |