SSH トンネリング経由で Python を MySQL に接続する
概要
Python と MySQL の間の安全な接続の確立MySQL サーバーはデータ交換と管理に不可欠です。 SSH トンネリングを利用すると、クライアントとサーバーの間に暗号化されたチャネルが作成され、これらの接続のセキュリティを強化できます。この記事では、Python を使用してこのようなトンネリング接続を確立する方法について説明します。
質問
Python が SSH トンネル経由で MySQL サーバーに接続できるようにするにはどうすればよいですか。 SSH トンネル ホストと MySQL サーバーが同じ上の SSH キー ペアmachine?
回答
SSH TunnelForwarder の使用
次のアプローチでは、sshtunnel ライブラリを利用してトンネルを確立し、接続します。を使用して MySQL にpymysql:
import pymysql import paramiko import pandas as pd from paramiko import SSHClient from sshtunnel import SSHTunnelForwarder sql_hostname = 'sql_hostname' sql_username = 'sql_username' sql_password = 'sql_password' sql_main_database = 'db_name' sql_port = 3306 ssh_host = 'ssh_hostname' ssh_user = 'ssh_username' ssh_port = 22 sql_ip = '1.1.1.1.1' # Create the SSH tunnel with SSHTunnelForwarder( (ssh_host, ssh_port), ssh_username=ssh_user, ssh_pkey=mypkey, remote_bind_address=(sql_hostname, sql_port)) as tunnel: # Connect to MySQL conn = pymysql.connect(host='127.0.0.1', user=sql_username, passwd=sql_password, db=sql_main_database, port=tunnel.local_bind_port) # Execute a query query = '''SELECT VERSION();''' data = pd.read_sql_query(query, conn) # Close the connection conn.close()
主要コンポーネント
以上が同じマシン上で SSH トンネリングとキー ペアを使用して Python を MySQL サーバーに安全に接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。